在MainWindow.xaml
<Label Content="{Binding ActEna,Mode=OneWay}"/>
<Button Content="Toggle" Click="Button_Click"/>
在MainWindow.xaml.cs
public partial class MainWindow : Window
{
public bool ActEna { get; set; }
public MainWindow()
{
InitializeComponent();
DataContext = this;
ActEna=true;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ActEna = !ActEna;
}
}
启动应用程序时,标签值为True。
当用户单击“切换”按钮时,标签未更新。
如何解决此问题?
答案 0 :(得分:0)
您需要实现INotifyPropertyChanged才能使数据绑定正常工作。在这里看看,它很好地解释了https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?view=netcore-3.1。
您会有类似的内容:
public partial class MainWindow : Window, INotifyPropertyChanged
private bool _actEna;
public bool ActEna
{
get
{
return _actEna;
}
set
{
_actEna = value;
RaisePropertyChanged();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ActEna = !ActEna;
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}