我有一组按钮,这些按钮是从ViewModel上的集合动态生成的。根据用户点击的按钮,我应该打开另一个视图。我可以使用哪些不同的可能方法。我正在考虑的一个选择是使用DataTemplateSelector。但是,如何处理按钮单击并根据单击的按钮触发模板。
<DataTemplate x:Key="viewOneTemplate">
<details:ViewOne x:Name="viewOne"/>
</DataTemplate>
<DataTemplate x:Key="viewTwoTemplate">
<details:ViewTwo x:Name="viewTwo"/>
</DataTemplate>
<DataTemplate x:Key="transitionContentTemplate">
<ItemsControl ItemsSource="{Binding Path=TransitionItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<WrapPanel>
<Button Content="{Binding DisplayName}"/>
</WrapPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
答案 0 :(得分:1)
我认为您必须使用Content Presenter
更改DataTemplate
上的Button Command
<Window>
<Window.Resources>
<DataTemplate DataType="{x:Type local:VM1}">
<!-- View 1 Here -->
</DataTemplate>
<DataTemplate DataType="{x:Type local:VM2}">
<!-- View 2 here -->
</DataTemplate>
<Window.Resources>
<ContentPresenter Content="{Binding CurrentVM}"/>
</Window>
现在,从Button Command
更改CurrentVM
媒体资源,确保您的CurrentVM
媒体资源type
应为object
。