Windows Phone 8复选框与公共属性绑定

本文关键字:属性 绑定 Phone 复选框 Windows | 更新日期: 2023-09-27 18:27:34

我正试图将我的复选框绑定到一个公共布尔属性,但我无法使其工作。

我是不是错过了什么?

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <CheckBox Name="CheckBox2" IsChecked="{Binding CheckBoxState}">
        </CheckBox>   </Grid>

代码背后:

  public const string NamePropertyName = "CheckBoxState";
    private bool _checkboxstate = true;
    public bool CheckBoxState
    {
        get { return _checkboxstate; }
        set
        {
            if (_checkboxstate == value) return;
            _checkboxstate = value;
            RaisePropertyChanged(NamePropertyName);
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    private void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    void appBarButtonSelect_Click(object sender, EventArgs e)
    {
         // HERE IT SHOULD TOGGLE STATE BUT IT DOES NOT!
        CheckBoxState = !CheckBoxState;
    }

Windows Phone 8复选框与公共属性绑定

答案隐藏在表面下七层。我真的在检查每一个wpf绑定的问题以找到答案,最终我找到了!我开始认为这是WP8的问题,而不是WPF。

所以我不得不像一样绑定窗口的数据上下文

<phone:PhoneApplicationPage DataContext="{Binding RelativeSource={RelativeSource Self}}">

答案在这里找到

我必须做更多关于wpf绑定的阅读:)