WPF数据绑定到布尔属性

时间:2020-06-01 07:50:05

标签: c# wpf data-binding datagrid

在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。

当用户单击“切换”按钮时,标签未更新。

如何解决此问题?

1 个答案:

答案 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));      
}  

相关问题