大家好,很抱歉这么长的问题,但是......
我有一个像这样的 C# 接口:
public interface ISimpleViewModel
{
string SimpleText { get; }
}
然后我继承了一个 F# 类型:
type SimpleViewModel() =
interface ISimpleViewModel with
member this.SimpleText
with get() = "Hello again!"
我还有一个 C# 继承者:
public class SimpleCSViewModel : ISimpleViewModel
{
public string SimpleText
{
get { return "Just testing"; }
}
}
最终我有一个超级简单的 WPF 应用程序,其中 MainWindow ctor 以这种方式注入 ISimpleViewModel 实例:
public partial class MainWindow : Window
{
public MainWindow(ISimpleViewModel viewModel)
{
ViewModel = viewModel;
InitializeComponent();
}
public ISimpleViewModel ViewModel
{
get { return DataContext as ISimpleViewModel; }
set { DataContext = value; }
}
}
当然,我的窗口上有一个 TextBlock,它的 Text 属性绑定到 SimpleText。
Everyting 在我注入 C# 实例时有效。但是我收到 BindingError ,在 F# 实例的情况下可以找到该属性。为什么会这样?