来自WP7中ObservableCollection的TextBlock绑定

时间:2012-12-25 21:04:22

标签: wpf windows-phone-7 xaml data-binding wpf-controls

我创建了一个ObersvableCollection并在我的APP.XAML.CS

上声明它是公开的

在XAML页面上,我插入一个TextBlock,并希望绑定到我的ObservableCollection

的属性

我做到了:

    <StackPanel Grid.Row="0" Margin="12,17,0,28" >
        <TextBlock Text="{Binding Path=App.glb_ObservableListTiers.m_strNom}" Style="{StaticResource PhoneTextNormalStyle}"/>
    </StackPanel>

最后,我没有看到任何文字!绑定似乎是错误的!

请问这个怎么样?

1 个答案:

答案 0 :(得分:0)

尽管您的ObservableCollection是公共的,但您的App对象应该可以访问当前的XAML页面。这可以通过在xaml.cs文件中创建App类的实例并将DataContext设置为它来实现。你似乎完全错了。

为了让您更好地理解,请点击此示例

在App.xaml.cs中创建一个字符串

public string m_strNom { get; set;}

在App()构造函数

中为此添加一些值
m_strNom = "Its working";

将数据绑定更改为此

<TextBlock Text="{Binding Path=m_strNom}" Style="{StaticResource PhoneTextNormalStyle}"/>

最后设置页面的DataContext或ContentPanel

this.DataContext = (App.Current as App); //This is not best .. just to show you how Databinding works

如果你想绑定到一个Observable collectin,那么最好考虑一个带有DataTemplate的ListBox用于XAML而不是一个纯文本块