6

我有这个问题,我的复选框 IsChecked 属性绑定不起作用。我用谷歌搜索,但人们说它应该是我正在使用的双向绑定。

这是我的代码:

 <CheckBox Name="ckC" VerticalAlignment="Center"
           IsChecked="{Binding Path=LSMChannelEnable[2],
                               Mode=TwoWay,
                               UpdateSourceTrigger=PropertyChanged}" />

这是它背后的 C# 代码:

public bool[] LSMChannelEnable
{
    get
    {
        return this._liveImage.LSMChannelEnable;
    }
    set
    {
        this._liveImage.LSMChannelEnable = value;
        OnPropertyChanged("LSMChannelEnable");
        OnPropertyChanged("EnableChannelCount");
        OnPropertyChanged("LSMChannel");
    }
}

任何指针都非常感谢,

4

2 回答 2

14

这是因为您正在绑定到一个数组。将要绑定到单独属性的属性拉出。

xml:

IsChecked="{Binding Path=ButtonEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 

代码:

public bool ButtonEnabled
{
    get { return this._liveImage.LSMChannelEnable[2]; }
    set { this._liveImage.LSMChannelEnable[2] = value;
         OnPropertyChanged("ButtonEnabled");
    }
}
于 2013-10-18T21:55:53.230 回答
4

尝试这个:

OnPropertyChanged("Item[]"); 

使用索引器时编译器生成的属性。请参阅此博客文章

于 2013-10-18T22:57:47.953 回答