Tim*_*out 8 wpf xaml binding user-controls dependency-properties
我有一个WPF UserControl包含一个名为MyDP的自定义DependencyProperty.我想将它绑定到我的ViewModel上的属性(它作为UserControl的DataContext注入).我知道一种方法,通过在父窗口的XAML中的UserControl声明中设置绑定,如下所示:
<Window x:Class="MyNamespace.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:views="clr-namespace:MyNamespace.Views">
<StackPanel>
<views:MyControl MyDP="{Binding Path=MyVMProperty, Mode=OneWayToSource}"/>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但作为替代方法,我可以在UserControl的XAML中设置绑定,类似于我如何将UserControl中各个控件的绑定设置为ViewModel的其他属性?
Joh*_*wen 15
你无法直接做你原先想到的事情.你可能试过并得到了一些编译错误.您无法在UserControl的根XAML中内联自定义属性,因为元素类型是UserControl,因此编译器会根据该类型强制执行属性名称,而不是您的自定义类型.您可以通过更改为附加属性来解决这个问题,但这实际上会改变MyDP的含义.相反,您可以在StyleControl的Style中设置默认值,并获得额外的好处,即只需执行原始示例中的操作即可在任何声明的实例上覆盖它.在UserControl的根元素下设置:
<UserControl.Style>
<Style>
<Setter Property="views:MyControl.MyDp" Value="{Binding Path=MyVMProperty, Mode=OneWayToSource}" />
</Style>
</UserControl.Style>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7478 次 |
最近记录: |