我刚刚开始使用 WPF,并且一直在阅读“ Sams Teach Yourself WPF ”。在第 6 章中,它在后面的代码中介绍了对属性的绑定,如下所示。这种方法对我来说取得了不一致的成功。
在我当前的项目中,此方法适用于我绑定到标签的两个双精度数。当我尝试使用相同的方法将 bool 绑定到 MenuItem 的 IsEnabled 属性时,该方法失败。
然后我回到书中的简单示例,并将属性类型从 String 更改为 bool。在这种情况下,我能够将布尔值绑定到 Button 和 TextBox。
我注意到当此方法失败时,OnChanged 函数中的 EventHandler 始终为空。我错过了什么?
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}"/>