【发布时间】:2012-02-11 06:31:10
【问题描述】:
对不起,如果这是基本的,但我没有找到一个很好的例子来准确描述我需要做什么来启用以下场景:
我有两个班级:
公共类事物:依赖对象 {
// Fields
private string name = "";
// Properties
public string Name
{
get { return name; }
set { name = value; }
}
// Dependency Properties
public int Count
{
get { return (int)GetValue(CountProperty); }
set { SetValue(CountProperty, value); }
}
public static readonly DependencyProperty CountProperty =
DependencyProperty.Register("Count", typeof(int), typeof(Thing), null);
// Methods
public override string ToString()
{
return DateTime.Now.ToString() + " " + this.Name + " " + this.Count.ToString();
}
// Constructors
public Thing(string name)
{
this.Name = name;
}
}
以及一个包含 Thing 对象的类
公共类事物:DependencyObjectCollection {
}
MainPage.xaml.cs 文件创建几个 Thing 对象并将它们添加到 Things 集合中。
公共部分类 MainPage : PhoneApplicationPage { 事物事物 = 新事物();
// Constructor
public MainPage()
{
InitializeComponent();
Thing thingA = new Thing("A");
Thing thingB = new Thing("B");
Things.Add(thingA);
Things.Add(thingB);
}
private void Action_Click(object sender, RoutedEventArgs e)
{
this.Things[0].Count += 1;
Debug.WriteLine(this.Things[0].ToString());
}
}
我的问题是如何编写绑定代码,以便列表框显示事物对象中包含的事物,并且当事物对象的 DependencyProperty 计数发生更改时,列表框中的事物对象作为字符串的显示会自动更新。
具体来说,我该怎么做以下 XAML 才能使上述情况发生。
也就是说,当我向 Things 对象添加一个新的 Thing 对象时,会向 ListBox 添加一个新项目。当我使用 Things 对象更改现有项目时,更改会出现在 ListBox 中。
在 Windows Phone 7 中,MainPage 包含一个 ListBox:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel>
<ListBox x:Name="ThingsBox" />
<Button x:Name="Action" Content="Action" Click="Action_Click"/>
</StackPanel>
</Grid>
</Grid>
【问题讨论】:
标签: c# windows-phone-7