У меня есть TabControl
ограничительные элементы управления вкладки в одном свойстве ObservableCollection, с закруткой
Я последовал ответ, выбранный here к письму. Дело в том, что в моем случае ExistingTabs не является ObservableCollection, но свойство из ObservableCollection:
Public Class TestData : INotifyPropertyChanged // and the required event handler is there also, not shown here
{
public TabItem tiTestTab {get; set;}
// another dozen properties
}
и
public class ReportData
{
public static ObservableCollection<TestData> testData {get;set;}
// another dozen properties
}
Вот что я сделал:
<Window.Resources>
<CollectionViewSource x:Key="ExistingTabs" Source="{Binding Path=(local:ReportDataSet.testData), Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Window.Resources>
<TabControl>
<TabControl.ItemsSource>
<CompositeCollection>
<TabItem>SomeSpecialItem</TabItem>
<CollectionContainer Collection="{Binding Source={StaticResource ExistingTabs}}"/>
</CompositeCollection>
</TabControl.ItemsSource>
</TabControl>
Это, конечно, помещает testData в вкладки, а не в свойство tiTestTab.
Я в затруднении.
Предпочтительно, только XAML. Использование C# и Visual Studio 2013.
Спасибо.
Вы хотите, чтобы привязка TwoWay для сбора, или это достаточно, чтобы привязать OneWay? – VMaleev
@VMaleev: oneway достаточно. Элемент управления вкладкой не имеет функции «удалить», и все изменения происходят из наблюдаемого набора в пользовательский интерфейс. – zazkapulsk
Еще один: вам действительно нужно, чтобы testData была статичной? – VMaleev