我有一個WPF應用程序,我試圖動態地將項目添加到tabcontrol。我有一個應該將數據綁定到tabcontrol項目的菜單項列表。唯一的問題是TabControl.Items不會通知其他人項目已被添加。我測試了這個綁定,而不是TabControl.Items.Count和調用轉換器(但傳入的值是計數,而不是有用的)。下面是培訓相關代碼,沒有得到正確數據綁定,因爲項目不叫喚更新:如何綁定到Tabcontrol.Items
<MenuItem ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}, Path=Items, Converter={StaticResource TabControlItemConverter}}">
這個菜單項XAML是一個TabControl一個控件模板內。對於靜態項目,即已經在TabControl中定義的項目,此代碼完美工作。但我有一個TabControl,它可以在運行時添加項目,並且似乎無法更新此綁定。有沒有人向可以綁定到Items集合的TabControl添加某種附加屬性?
編輯背景信息 添加了項目的TabControl是一個區域(這是一個Prism應用程序)。這裏是培訓相關XAML
<TabControl cal:RegionManager.RegionName="{x:Static local:LocalRegionNames.SelectedItemRegion}" >
<TabControl.Resources>
<Style TargetType="TabItem" BasedOn="{StaticResource TabItemStyle}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Style="{StaticResource tabItemImage}" Height="20" />
<TextBlock Text="{Binding Content.DataContext.TabHeader, RelativeSource={RelativeSource AncestorType=TabItem}}" VerticalAlignment="Center" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
</TabControl>
添加着眼於本地區的培訓相關代碼如下:
ProjectDetailView view = new ProjectDetailView();
ProjectDetailViewModel viewModel = new ProjectDetailViewModel();
viewModel.CurrentProject = project;
view.DataContext = viewModel;
IRegionManager retManager = RegionManager.Regions[LocalRegionNames.SelectedItemRegion].Add(view, null, true);
RegionManager.Regions[LocalRegionNames.SelectedItemRegion].Activate(view);
所有這一切工作正常...的意見得到補充,該標籤控件添加項目,出現視圖。但是tabcontrol上的Items屬性絕不會將更改廣播到其集合中。