由多个相同的视图模型共享视图的实例

时间:2014-07-28 09:30:54

标签: .net wpf mvvm

我正在使用MVVM设计模式实现WPF应用程序。 我们的想法是在工作空间中对多个数据进行不同的表示。 每个工作空间一个实体(实际上是一个选项卡),可以在详细或汇总视图中看到。

为此,我使用了这些文章: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx http://rachel53461.wordpress.com/2011/05/28/switching-between-viewsusercontrols-using-mvvm/

一切都很好,但是当我使用一个给定视图模型的汇总视图实例化2或3个选项卡时,只有一个视图实例化。 因此,如果我在文本框中输入一些文本,则每个选项卡中的每个文本框都会被修改。 我不希望这样,因为一个选项卡可能是列表中的另一个实体。

以这种方式处理视图之间的切换:

<DataTemplate x:Key="CusomterDetailTemplate" DataType="{x:Type vm:CustomerViewModel}">
    <vw:CustomerDetailView />
</DataTemplate>

<DataTemplate x:Key="CustomerListTemplate" DataType="{x:Type vm:CustomerViewModel}">
    <vw:CustomerListView />
</DataTemplate>

<DataTemplate DataType="{x:Type vm:CustomerViewModel}">
    <ContentControl Content="{Binding }">
        <ContentControl.Style>
            <Style TargetType="{x:Type ContentControl}">
                <Setter Property="ContentTemplate" Value="{StaticResource CustomerListTemplate}" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding View}" Value="Detail">
                        <Setter Property="ContentTemplate" Value="{StaticResource CustomerDetailTemplate}" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ContentControl.Style>
    </ContentControl>
</DataTemplate>

这不是我想要的。每个标签应该是独立的。 我想我错过了一些东西,但我还看不到它。

这就是我要求你帮助的原因。

谢谢。

0 个答案:

没有答案