我有以下情况:
我有一些 ViewModel 对象,其中一些实现了 interface ISomeInterface
,有些则没有。这些接口公开了一个名为SomeEnumeration
( IEnumerable<T>
) 的属性。
例如:
public sealed class ViewModelA : ViewModelBase, ISomeInterface
{
// ...
IEnumerable<Foo> ISomeInterface.SomeEnumeration
{
get { ...; }
}
}
public sealed class ViewModelB : ViewModelBase
{
// ...
}
到目前为止,我的 XAML 的设计方式是两个 ViewModel 都恰好具有我要绑定的属性(即PropertyA
、PropertyB
等)。我还没有遇到我要绑定的属性在我设置为DataContext
. 但是,现在我将......并且它将针对明确实现的属性(我不确定这是否会对 WPF 绑定引擎产生任何影响)。
基本上,我的 xaml 将如下所示:
<StackPanel
Visiblity="{Binding Path=SomeEnumeration, Converter={StaticResource AnyConverter}">
...
</StackPanel>
我不确定这是否会起作用,因为:
- 不是每个
DataContext
都包含该属性(如果没有,它应该被隐藏)......在这种情况下我该怎么办? - 对于
DataContext
包含该属性的 s ,它是显式实现的……你必须先转换还是什么?