私はWPFを使い始めたばかりで、「Sams Teach Yourself WPF」を読んでいます。第 6 章では、以下に示すように、コード ビハインドでプロパティへのバインディングを紹介します。この方法は、私にとって一貫性のない成功を収めています。
私の現在のプロジェクトでは、このメソッドは、値がラベルにバインドされた 2 つの double に対して機能しました。同じメソッドを使用して bool を MenuItem の IsEnabled プロパティにバインドしようとすると、メソッドが失敗します。
次に、本の簡単な例に戻り、プロパティ タイプを String から bool に変更しました。その場合、Bool を Button と TextBox にバインドできました。
このメソッドが失敗すると、OnChanged 関数で EventHandler が常に null になることに気付きました。私は何が欠けていますか?
private String _myString;
public String MyString
{
get { return _myString; }
set
{
_myString = value;
OnMyStringChanged();
}
}
public event EventHandler MyStringChanged;
private void OnMyStringChanged()
{
if (MyStringChanged != null)
MyStringChanged(this, EventArgs.Empty);
}
MainWindow クラスに次の XAML があります。MainWindow のコンストラクターで、DataContext を MyString を含むクラスの新しいインスタンスに設定します。
<TextBox Text="{Binding Path=MyString, Mode=TwoWay}"
Margin="4"/>
<Button Grid.Row="1"
Height="40"
Margin="4"
Click="Button_Click"
Content="{Binding Path=MyString, Mode=TwoWay}"/>