我有一个DataTemplate
已投入ResourceDictionary
,并在DataTemplate
有一个按钮,我把这个DataTemplate
在一个窗口中。现在我想将按钮命令绑定到windowViewModel
的属性,我该怎么做? 这是代码:如何将DataTemplate中的按钮绑定到ViewModel?
<DataTemplate DataType="{x:Type types:User}" x:Key="UserTemp">
<Grid >
<Button Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ????}, AncestorLevel=1}, Path=SelectLocationCommand}" />
</Grid>
</DataTemplate>
和Window.xaml
<ContentControl x:Name="UserTemp" />
和WindowViewModel:
public ICommand SelectLocationCommand
{
get {return new RelayCommand(selectLocationCommand); }
}
void selectLocationCommand()
{
_welcomeTitle = "AA";
}
感谢亚历克斯,但我不想把SelectLocationCommand在用户级!其实用户实体类! – 2012-04-10 04:17:41
有一些解决方案可以在父视图模型中使用该命令,如果您只是提供一些关于您的设计的更多细节,我可能会更好地帮助您。当你说用户实际上是实体类时,你的意思是这是模型吗? – AlexDrenea 2012-04-10 16:06:55
感谢alex,它有一个真正简单的解决方案,您只需要为窗口设置一个名称,并在dataTemplate bindig中指定该名称的元素名称。 – 2012-04-11 04:31:15