私は、C# でのバインディングのアイデアに少し慣れていません。現在、作業中の MVVM を使用するアプリケーションがあります。たとえば、次のようなリストがあるとします。
List<string> Items = new List<string>()
{
"Item1",
"Item2",
"Item3",
}
このリストには、次のような 3 つのテキスト ボックスがバインドされています。
XAML では:
<TextBox Name="TextBox1" text="{Binding TextSource1 Mode=TwoWay}">
<TextBox Name="TextBox2" text="{Binding TextSource2 Mode=TwoWay}">
<TextBox Name="TextBox3" text="{Binding TextSource3 Mpde=TwoWay}">
そしてコードで:
Public string TextSource1
{
get { return Items[0]; }
set { Items[0] = value; }
}
Public string TextSource2
{
get { return Items[1]; }
set { Items[1] = value; }
}
Public string TextSource3
{
get { return Items[2]; }
set { Items[2] = value; }
}
最初のテキストボックスに表示されている値が、リストにあるように現在「Item1」であるとします。ここから、ユーザーはそれを「Item4」に変更します。そこからリストを更新するにはどうすればよいですか?TwoWay に設定されている場合、自動的に更新されますか?
リストの値を変更する必要があるかどうかは、コードでわかっています。たとえば、次のように言います。
Items[2] = "Item4";
呼び出してテキストボックスを更新できます
RaisePropertyChanged("TextSource3");
しかし、それは現時点ではあまり役に立ちません。