これは初心者ですが申し訳ありませんが、私が行う必要があることを正確に説明した良い例は見つかりませんでしたWindows Phone 7:コレクションのアイテムの変更がListBox内で更新されるようにコレクションをListBoxにバインドする
パブリッククラスシング:私は2つのクラス持っ
:次のシナリオを有効にする事がオブジェクトを含むようにしたDependencyObject {
// 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;
}
}
とクラスを
パブリッククラス物事:DependencyObjectCollection {
}
MainPage.xaml.csファイルには、シングオブジェクトのカップルを作成し、物事のコレクションに追加します。
公開部分クラスメインページ:PhoneApplicationPage { Things Things = new Things();私の質問は、シングオブジェクトのDependencyPropertyにカウントが変更されたときにリストボックスの文字列が自動的に更新されると、リストボックスは、物事のオブジェクトと実物のオブジェクトの表示に含まれている事を表示するように結合コードを記述する方法である
// 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());
}
}
。
具体的には、上記のシナリオを実行するには、次のXAMLをどうすればよいですか。
つまり、Thingsオブジェクトに新しいThingオブジェクトを追加すると、新しいアイテムがListBoxに追加されます。 Thingsオブジェクトで既存のアイテムを変更すると、その変更が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>