【问题标题】:WPF Data Binding to Bool Property [duplicate]WPF数据绑定到布尔属性[重复]
【发布时间】:2020-06-01 07:50:05
【问题描述】:

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

当用户点击切换按钮时,标签没有更新。

如何解决这个问题?

【问题讨论】:

    标签: c# wpf data-binding datagrid


    【解决方案1】:

    您需要实现 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));      
    }  
    
    

    【讨论】:

    • 我已经相应地编辑了我的答案,如果他想使用 OP,或者其他人提出这个问题
    猜你喜欢
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多