0

我创建一个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>

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

请问这个怎么做?

4

1 回答 1

0

即使您的 ObservableCollection 是公开的,您的 App 对象也应该可以被当前 XAML 页面访问。这可以通过在 xaml.cs 文件中创建 App 类的实例并将 DataContext 设置为它来实现。你做的完全错了,看来。

为了让您更好地理解,请遵循此示例

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

public string m_strNom { get; set;}

在 App() 构造函数中为 this 添加一些值

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 集合,那么最好考虑使用 XAML 的 DataTemplate 的 ListBox 而不是纯 TextBlock

于 2012-12-26T06:22:18.643 回答