如何在使用绑定时保留TabControl中的选项卡

时间:2015-09-09 16:24:44

标签: c# wpf tabcontrol

所以我有TabControl。我想将ItemsSource绑定到我的ViewModel集合,以便动态添加标签。类似的东西:

<TabControl ItemsSource="{Binding Path=Cities}">
    <TabItem Header="Settings" x:Name="settingsTab" />
</TabControl>

其中CitiesObservableCollection类型的City。但是,我希望第一个标签显示SettingsViewCities中的项目应显示CityView。选项卡控件只是一个导航面板,我基本上试图将settings放在第一个位置,然后是动态数量的城市。

最优雅的解决方案是什么?我宁愿不使用包含所有城市模型后面的设置模型的随机集合来污染我的视图模型。

1 个答案:

答案 0 :(得分:0)

如果您不希望选项卡控件成为城市列表,则需要使用DataContext而不是ItemsSource。然后,您可以将cities对象绑定到TabItems Content

中的列表视图

示例:

public class City
{
   public string Name {get;set;}
   public string SettingOne {get;set;}
   public string SettingTwo {get;set;}
}

<TabControl DataContext="{Binding Path=Cities}">
    <TabItem Header="Settings" x:Name="settingsTab">
        <TabItem.Content>
            <ListView ItemsSource="{Binding}">
                <ListView.ItemTemplate>
                    <TextBox Text="{Binding Path=SettingOne}"></TextBox>
                     ...
                 </ListView.ItemTemplate>
            </StackPanel>
        </TabItem.Content>
    </TabItem>
</TabControl>