WPF:在样式和/或数据模板(MVVM)中绑定命令?
下面是对我的情况的非常快速和简单的解释。我已经为WPF:在样式和/或数据模板(MVVM)中绑定命令?,wpf,mvvm,binding,styles,Wpf,Mvvm,Binding,Styles,下面是对我的情况的非常快速和简单的解释。我已经为Hyperlink控件定义了一种样式,它们将Command属性绑定到ViewModel类中定义的命令(简化): 这个管用,但看起来太脏了。我做错了吗?有没有更好的方法,更多 MVVM怎么样?这是脆弱的,因为我正在样式中设置特定的元素名称 首先在样式内部编写命令绑定是一种好的做法吗 地点?如果没有,还有什么选择?如果我开发了一个复杂的用户控件, 如何将命令设置到逻辑树深处的组件 谢谢你的帮助 另一种语法将使用RelativeSource 我认为用一
Hyperlink
控件定义了一种样式,它们将Command
属性绑定到ViewModel
类中定义的命令(简化):
这个管用,但看起来太脏了。我做错了吗?有没有更好的方法,更多
MVVM怎么样?这是脆弱的,因为我正在样式中设置特定的元素名称
用户控件
,
如何将命令设置到逻辑树深处的组件
<Window.Resources>
...
<Style x:Key="hyperlinkStyle" TargetType="Hyperlink">
...
<Setter Property="Command" Value="{Binding Path=OpenHyperlinkCommand}" />
...
</Style>
...
</Window.Resources>
<Window>
...
<ContentControl
...
ContentTemplate="{StaticResource myDataTemplate}" />
...
</Window>
<Window.Resources>
...
<DataTemplate x:Key="myDataTemplate DataType="{x:Type my:MyType}">
...
<TextBlock>
<Hyperlink
Style="{StaticResource hyperlinkStyle}"
CommandParameter="{Binding Path=Uri1}">
<TextBlock Text="{Binding Path=Uri1}" />
</Hyperlink>
</TextBlock>
...
<TextBlock>
<Hyperlink
Style="{StaticResource hyperlinkStyle}"
CommandParameter="{Binding Path=Uri2}">
<TextBlock Text="{Binding Path=Uri2}" />
</Hyperlink>
</TextBlock>
...
</DataTemplate>
...
</Window.Resources>
<Setter Property="Command" Value="{Binding ElementName=myWindow Path=DataContext.OpenHyperlinkCommand}" />