我的应用程序有大约15个不同的UserControl,它们在运行时统一加载到内容区域.
我的项目是100%MVVM兼容的,所以我在每个UserControl的XAML中插入了以下XAML:
<UserControl
    ...
    xmlns:intr="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
>
    <intr:Interaction.Triggers>
        <intr:EventTrigger EventName="Loaded">
            <intr:InvokeCommandAction Command="{Binding ViewLoadedCommand}"/>
        </intr:EventTrigger>
    </intr:Interaction.Triggers>
    <!-- Rest of UserControl content here -->
</UserControl>
显然这不是理想的,也是对DRY的违反.
将此XAML应用于这组UserControls的最佳方法是什么?(但不是每个 UserControl,所以一个简单的<Style Type="UserControl" />不合适).
您可以使用 Interaction.Triggers 创建一个“基本负载”用户控件,然后将一个 ContentPresenter 放入其中,将实际内容绑定到其中。
<UserControl x:class="OneOfMyOtherControls">
   <MyBaseUserControl>
     <!-- your UserControl Content-->
   </MyBaseUserControl>
</UserControl>
| 归档时间: | 
 | 
| 查看次数: | 460 次 | 
| 最近记录: |