我有一个从另一个接口继承的接口。在我的代码中一切正常,我可以从两个界面看到所有内容。我试图将接口绑定到 xaml(因为我将它注入到我的 ViewModel 中)但 xaml 只看到来自顶层接口的属性,而不是它继承的接口。
这是我正在做的事情的一个快速示例(请记住,这只是一个演示我遇到的问题的测试):
public interface IA
{
void MethodA();
private string _bindingPropA;
public string BindingPropA
{
get { return _bindingPropA; }
set { Set(ref _bindingPropA, value); }
}
}
public interface IB : IA
{
void MethodB();
private string _bindingPropB;
public string BindingPropB
{
get { return _bindingPropB; }
set { Set(ref _bindingPropB, value); }
}
}
public class TestService1 : IB
{
public void MethodA()
{
Console.WriteLine("Method A");
}
public void MethodB()
{
Console.WriteLine("Method B");
}
}
public class DPTest1
{
public IB Injection;
public DPTest1(IB injection)
{
Injection = injection;
}
}
并实际测试它
DPTest1 TestInjection1 = new DPTest1(new TestService1());
//Can see methods from both interfaces just fine
TestInjection1.Injection.MethodA();
TestInjection1.Injection.MethodB();
//but if i bind it to xaml it only sees the properties in interface "IB"!
如果我尝试在 xaml 中绑定或 x:Bind 它,我只能在“接口 IB”中看到“方法 B”
xaml 不能绑定到嵌套接口是真的吗,我必须将 TestService 编码到我的类中,而不是将它注入到接口中???
潇湘沐
相关分类