我在视图后面的代码(.cs)中定义了一个依赖项属性,我想从我的视图模型中绑定一个值。我希望我可以转到.xaml并在定义Window的顶部绑定它,并填充其他属性,如DataContext,Title等。这似乎是不可能的,因为那里出现的唯一属性是基本Window类型,而不是我正在使用的视图的特定实例。
我想要这样做的原因是,如果我的ViewModel定义了一个命令,我希望能够从我视图后面的代码中启动该命令。我不想将DataContext强制转换为特定的ViewModel类型来获取命令的句柄。我显然可以发送一条消息(我正在使用MVVM Light)来执行此操作,看起来好像我可以通过依赖属性进行消息传递。
答案 0 :(得分:3)
您可以通过Style setter设置绑定,如下所示。请注意Setter Property
中的完全限定的属性名称。您也可以将local:MainWindow
设置为样式TargetType
以避免使用完全限定的属性名称,但XAML Designer可能会抱怨这一点。
<Window x:Class="SomeNamespace.MainWindow"
xmlns:local="clr-namespace:SomeNamespace" ...>
<Window.Style>
<Style>
<Setter Property="local:MainWindow.SomeProperty"
Value="{Binding ViewModelProperty}"/>
</Style>
</Window.Style>
...
</Window>