次のような状況があります。
いくつかの 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
にプロパティが含まれているわけではありません (含まれていない場合は、非表示にする必要があります) ... この場合はどうすればよいですか? - プロパティを含む sについては、
DataContext
明示的に実装されています...最初にキャストする必要がありますか?