我有两个带网格的标签。每个标签中的网格都相同。当用户打开文件时,我希望文件的内容仅转到选定的选项卡。如何为所选选项卡设置绑定?我想我可以使用相同的视图模型。如果viewmodel SelectedTab与选项卡选择相同,则数据将在该选项卡上。
这是我的观点
<TabControl DockPanel.Dock="Left" Margin="10" SelectedIndex="{Binding SelectedIndex}">
<TabItem Header="One">
<views:ShowView x:Name="OneView" MaxWidth="1000"/>
</TabItem>
<TabItem Header="Two">
<views:ShowView x:Name="TwoView" MaxWidth="1000"/>
</TabItem>
</TabControl>
在我的ViewModel中我有
private int SelectedIndex { get; set; }
始终没有设置。如何让OneView和TwoView知道SelectedIndex的值是什么?
答案 0 :(得分:0)
我认为ViewModel中的SelectedIndex
属性是一个数字?
您无法将TabControl
项(TabItem
内容)绑定到索引,但TabControl也有{{1} }属性,所以你可以改变你的绑定:
SelectedIndex
答案 1 :(得分:0)
我按照这个回答How to create tab-able content in WPF/C#?
在ResourceDictionary
中<DataTemplate x:Key="ContentTemplate" DataType="{x:Type vm:ViewModel}">
<view:View />
</DataTemplate>
在xaml
<TabControl DockPanel.Dock="Left" Margin="10" SelectedIndex="{Binding SelectedIndex}"
ContentTemplate="{StaticResource ContentTemplate}" ItemsSource="{Binding Items}"/>
在MainWindowViewModel
中 Items = new ObservableCollection<ViewModel>
{
new View(0),
new View(1),
new View(2)
};