が動作していない、そこにビューモデルを使用して同様のポストがあると私はそれに基づいて、それを実行しようとしましたが、それは動作していない、 WPF binding textbox to dictionary entry辞書 - TextBoxの結合が、私はビューモデルを使用していない
私は自分のボタンをクリックすると、作成されたリストが作成され、辞書が作成されているので、下にある例では、そのボタンをクリックすると辞書が作成されます。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
private Dictionary<string, string> _MyDict;
public Dictionary<string, string> MyDict {
get { return _MyDict; }
set { _MyDict= value; }
}
private void button_Click(object sender, RoutedEventArgs e)
{
MyDict = new Dictionary<string, string>
{
{"First", "Test1"},
{"Second", "Test2"}
};
}
}
Chrilleさんのコメントに続き
XAML
Title="MainWindow" Height="350" Width="674.167">
<Grid>
<Button x:Name="createListfromTextFile" Content="hi" Click="button_Click"/>
<TextBox x:Name="textBox1" Text="{Binding MyDict[First], UpdateSourceTrigger=PropertyChanged}" Height="279" >
</Grid>
UPDATE
私はそうのようなINotifyPropertyChanged
を実装することにより 、問題を修正:
public partial class MainWindow : Window, INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
public Dictionary<string, string> MyDict
{
get { return _MyDict; }
set {
_MyDict = value;
if (null != PropertyChanged)
{
this.PropertyChanged(this, new PropertyChangedEventArgs ("MyDict"));
}
}
}
}
あなたは基本的にビューを使用していますモデル、MainWindowクラス(DataContext)。ビューモデルクラスは、変更をUIに通知するためにINotifyPropertyChangedを実装する必要があります。 – Chrille
@Chrille、はい、そうです...それはうまくいきました、ありがとうございます - 申し訳ありません、私はこのようなものを持つ初心者です – JohnChris
@JohnChris質問を編集する代わりに、回答を書いて受け入れてください。 – Clemens