WPF选项卡数据模板 - 控件在创建新选项卡时保留值

时间:2013-03-12 11:31:05

标签: c# wpf xaml tabcontrol

我的WPF标签控件存在问题。

我有一个TabControl,ItemsSource绑定到ObservableCollection。我为选项卡的标题/内容部分创建了一个数据模板。内容部分包含一个自定义控件,带有一堆标签和文本框。对于创建新选项卡时可编辑的文本框,数据会在新选项卡中显示。不确定我的XAML是否存在问题或视图模型中的某些问题。这是我的XAML代码:

      <UserControl.Resources>
            <DataTemplate x:Key="TabItemHeaderTemplate">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding AdFile.Name}" />
                </StackPanel>
            </DataTemplate>
            <DataTemplate x:Key="TabItemContentTemplate">
                <MyView:MyCustomControl/>
            </DataTemplate>
            <Style x:Key="TabItemContainerStyle" TargetType="TabItem">
                <Setter Property="Header" Value="{Binding}"/>
                <Setter Property="HeaderTemplate" 
                Value="{StaticResource TabItemHeaderTemplate}"/>
                <Setter Property="Content" Value="{Binding}"/>
                <Setter Property="ContentTemplate" 
                Value="{StaticResource TabItemContentTemplate}"/>
            </Style>
    </UserControl.Resources>


        <TabControl Grid.Row="3" ItemsSource="{Binding OpenedFiles}" x:Name="_myTabControl" SelectedItem="{Binding Path=CurrentDataControlViewModel, Mode=TwoWay}" SelectionChanged="TabControlSelectionChanged" ItemContainerStyle="{StaticResource TabItemContainerStyle}"/>

不确定我应该提供哪些其他信息。也许这是一个常见的问题,我只是没有正确设置?基本上我只是希望能够为每个标签创建一个新的控件实例....提前感谢。

1 个答案:

答案 0 :(得分:0)

听起来好像您的ViewModel是Singleton,正在克隆,或者您正在尝试使用现有ViewModel填充新选项卡。

如果您正在使用MEF,请记住将[PartCreationPolicy]属性设置为NonShared。