从按钮单击触发DataTemplate

时间:2015-10-29 19:37:43

标签: wpf xaml

我有一组按钮,这些按钮是从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>

1 个答案:

答案 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

Referance