一尘不染

WPF数据绑定到接口而不是实际对象-是否可以强制转换?

c#

说我有一个像这样的界面:

public interface ISomeInterface
{
...
}

我也有几个实现此接口的类。

public class SomeClass : ISomeInterface
{
...
}

现在,我有了一个使用自定义DataTemplate列出ISomeInterface项的WPF ListBox。

数据绑定引擎显然不允许(我已经能够弄清楚)允许我绑定到接口属性-
它看到该对象是SomeClass对象,并且仅当SomeClass应该碰巧具有bind属性时才显示数据。非接口属性。

我怎样才能告诉DataTemplate像每个对象都是一个ISomeInterface而不是SomeClass等那样工作?

谢谢!


阅读 330

收藏
2020-05-19

共1个答案

一尘不染

为了绑定到显式实现的接口成员,您需要做的就是使用括号。例如:

隐式的:

{Binding Path=MyValue}

明确的:

{Binding Path=(mynamespacealias:IMyInterface.MyValue)}
2020-05-19