在我的ViewModel
类中,我有一个静态属性AllSupport
,但我无法弄清楚如何正确绑定它。 ListView已绑定到具有AllEffects
静态属性的ObservableCollection AllSupport
。
我用过这个:
<GridViewColumn
Width="Auto"
Header="GPU">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox
Margin="0"
HorizontalAlignment="Center"
IsChecked="{Binding AllSupport[HardwareType].SupportList.IsSupported, Mode=TwoWay}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
AllEffects
是ObservableCollection
的{{1}},其中有一个名为EffectViewModel
的静态属性,其类型为:
AllSupport
其中:
Dictionary<HardwareType, List<EffectSupport>>
是一个枚举,而且
HardwareType
是一个具有名为EffectSupport
的布尔属性的实例类。
我也试过这个,但后来抱怨它在IsSupported
类上找不到IsSupported
:
ViewModel
任何想法,如何指定此绑定?
答案 0 :(得分:2)
您可以使用x:Static
该类是否为静态来访问静态成员。
未测试:
IsChecked="{Binding [HardwareType], Source={x:Static prefix:EffectViewModel.AllSupport}}"
并且您需要prefix
来访问您的视图模型的命名空间。
答案 1 :(得分:0)
这是我的情景:
问题陈述:
我的解决方案:
代码隐藏(Window.cs):
public ObservableCollection<T> FooList {get {return FooLogger.ExceptionList;}}
//where FooLogger is a non-static class
//and ExceptionList is a static ObservableCollection<T>
的DataContext(Window.cs):
this.DataContext=this;
XAML(Window.xaml)
<ListView ItemsSource="{Binding FooList}">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto" Header="Name" DisplayMemberBinding="{Binding Name}" />
干杯, V0K