小编Esp*_*Moe的帖子

如何为我的bool属性正确实现INotifyPropertyChanged并绑定到CheckBox.IsChecked?

新手在这里.我一直试图围绕数据绑定,并希望尝试将视图中的复选框双向绑定到我称为"状态"的单独类中的布尔值.关键是要确保它们始终保持同步.

所以我在视图中创建了一个复选框,并将其绑定到State-class中前面提到的布尔属性,并伴有一个按钮,该按钮绕过复选框并直接切换布尔属性(恰当地标记为'Ninja!').关键在于测试复选框的数据绑定在属性更改时的反应.但是,我不能最好地弄清楚当属性更改时应该如何调用OnPropertyChanged方法.

这是我到目前为止所拥有的:

<CheckBox x:Name="checkBox" Content="CheckBox" HorizontalAlignment="Left" Margin="232,109,0,0" VerticalAlignment="Top" IsChecked="{Binding Checked, Mode=TwoWay}"/>
<Button x:Name="button" Content="Ninja!" HorizontalAlignment="Left" Margin="228,182,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/>
Run Code Online (Sandbox Code Playgroud)

我所做的"州"级代码:

namespace TestTwoWayBinding
{
    class State : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        private bool _checked;
        public bool Checked {
            get
            {
                return _checked;
            }
            set
            {
                _checked = value;
                OnPropertyChanged(Checked);
            }
        }       

        public void Toggle()
        {
            if (!Checked)
            {
                Checked = true;
            }
            else
            {  
                Checked = false;

            }
        }

        public State(bool c)
        {
            this.Checked = c;
        }

        protected …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf

4
推荐指数
1
解决办法
8383
查看次数

标签 统计

c# ×1

data-binding ×1

wpf ×1