我有一个usercontrol,它公开了一些依赖项属性。如果我直接使用这个用户控件,我只是直接在属性的视图中设置一个绑定,例如:
<uc:MyControl MyCustomProperty="{Binding SomeOtherProperty}" />
由于我使用的是Caliburn Micro和MVVM,因此似乎首选方法是在MyControlViewModel类型的“父”视图模型上创建属性,然后在视图中放置ContentControl。这应该创建与用户控件“MyControl”相关联的ViewModel(而不是将所有代码都粘贴在我的用户控件的“codebehind”中),然后设置datacontext以便将它绑定在一起。
所以“父”屏幕的ViewModel看起来像这样:
public MyControlViewModel MyControl { get; set; }
// MyControlViewModel gets either passed in via contructor or instanciated in the contructor
父屏幕的视图会显示:
<ContentControl x:Name="MyControl" />
这很有效。 Caliburn将控件呈现到ContentControl中,并按预期绑定到MyControlViewModel。
我的问题是 - 如何在此时绑定MyCustomProperty? ContentControl不公开MyCustomProperty。我可以在这里使用一些语法来设置此绑定吗?