Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未使用OnLoaded事件设置Textblock文本属性_C#_Silverlight_Windows Phone 7_Events_Textblock - Fatal编程技术网

C# 未使用OnLoaded事件设置Textblock文本属性

C# 未使用OnLoaded事件设置Textblock文本属性,c#,silverlight,windows-phone-7,events,textblock,C#,Silverlight,Windows Phone 7,Events,Textblock,我在特定页面上有一个texblock。我是上一页的导航,单击列表框中的一个选项,对象作为属性存储在APP.Xaml文件中。在我的导航页面上,我在我的列表框的已加载事件中调用此对象,并将它们的文本属性设置为我的App.xaml文件中存储的属性上的相应等价项 问题是,4个列表框中只有一个有效,而另一个无法显示。任何人都知道这是为什么。我的代码如下 private void StopNameTextBlock_Loaded(object sender, RoutedEventArgs e)

我在特定页面上有一个texblock。我是上一页的导航,单击列表框中的一个选项,对象作为属性存储在APP.Xaml文件中。在我的导航页面上,我在我的列表框的已加载事件中调用此对象,并将它们的文本属性设置为我的App.xaml文件中存储的属性上的相应等价项

问题是,4个列表框中只有一个有效,而另一个无法显示。任何人都知道这是为什么。我的代码如下

 private void StopNameTextBlock_Loaded(object sender, RoutedEventArgs e)
    {
        StopNameTextBlock.Text = (Application.Current as App).SelectedBusStop.StopName;
    }

    private void BusDirectionTextBlock_Loaded(object sender, RoutedEventArgs e)
    {   
        BusDirectionTextBlock.Text = "Towards: " + (Application.Current as App).SelectedBusStop.BusDirection;
    }

    private void BusesServedTextBlock_Loaded(object sender, RoutedEventArgs e)
    {
        BusesServedTextBlock.Text = "Buses Served: " + (Application.Current as App).SelectedBusStop.BusesServed;
    }
从上面的代码。第一个文本块填充,但其他文本块不填充。帮助 下面是XAML代码

<StackPanel Name="StopInfo" Orientation="Vertical" Margin="0,0,0,620">
            <TextBlock Name="BusDirectionTextBlock" Loaded="BusDirectionTextBlock_Loaded" />
            <TextBlock Name="BusesServedTextBlock" Loaded="BusesServedTextBlock_Loaded" />
            <TextBlock Name="TimeRequestedTextBlock" />
        </StackPanel>


在基于XAML的技术中,这不是做事的方式。您需要创建一个具有适当属性的
ViewModel
,并将您的视图绑定到它。尽管MVVM可能被认为是最佳实践,但完全可以为silverlight编写代码而不使用它,甚至不使用数据绑定等。Sani,您是否也可以发布XAML中声明加载的
StopNameTextBlock_
事件的部分?@HighCore,如果说代码错误,您应该非常小心。“我也不会以这种方式实施它,但最终这确实是一个哲学和判断的问题。”HighCore。依定义,“您的代码是错误的,您需要删除它并使用{insert favorite pattern here}重新开始”这种形式的每个语句都是主观的。您可能会争辩说,有一个通用的最低可接受代码质量级别,但那个级别将是非常有争议的。您可以选择优化速度、大小、资源分配、可测试性和/或可读性。无论你选择什么,总有人会有充分的理由不同意你。我会说“有更好的方法可以做到这一点”。@HighCore,没有冒犯,但我甚至没有涉及到一个严厉的轻蔑声明会对即将到来的程序员造成什么样的影响,或者什么态度会创造一种宽容的堆栈溢出氛围。