【发布时间】:2017-02-26 20:38:22
【问题描述】:
我有以下struct:
public struct StreamContainer
{
public string Name { get; set; }
public bool IsVisible { get; set; }
public Canvas Canvas { get; set; }
}
以下私人成员:
private ObservableCollection <StreamContainer> m_listOfStreams = new ObservableCollection<StreamContainer>();
以下属性:
public ObservableCollection<StreamContainer> ListOfStreams
{
get { return m_listOfStreams; }
set
{
m_listOfStreams = value;
OnPropertyChanged();
}
}
在我的“Xaml”中,我有这个:
<MenuItem x:Name="StreamsMenu" Header="Streams" Foreground="DarkRed" Focusable="False">
<MenuItem x:Name="ColorStream" Header="Color" IsCheckable="True" IsChecked="True" Foreground="DarkRed" Click="SelectStream_OnClick"/>
<MenuItem x:Name="GrayStream" Header="Depth" IsCheckable="True" Foreground="DarkRed" Click="SelectStream_OnClick"/>
</MenuItem>
是否可以将每个 MenuItems IsChecked 属性(ColorStream 和 GrayStream)绑定到它们匹配的 IsVisible 属性?例如,这意味着ColorStream 的IsChecked 属性将绑定到ObservableCollection 中第一项的“IsVisible”属性。
【问题讨论】:
-
旁注,OC属性应该是只读的,它是一个可观察集合的关键在于它有一个CollectionChanged事件;将其粘贴在 INPC 属性中是没有意义的。另外,@ 987654334@ eew。去阅读框架设计指南。您的开发人员会看到这一点并悄悄地评判您。
标签: c# wpf mvvm binding ischecked