Скажи, что у меня XAML как
<TabControl Grid.Row="1" Grid.Column="2" ItemsSource="{Binding Tabs}" IsSynchronizedWithCurrentItem="True">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding TabTitle}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:UserControl1 Text="{Binding Text}" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
Я хочу спросить, откуда берутся свойства TabTitle
и Text
? Я думаю, что должно прийти от каждого элемента Tabs
верно? Скажем, табуляция ObservableCollection<TabViewModel>
TabTitle
& Text
должна быть из TabViewModel
свойств справа. Но это кажется правдой в определенной степени. TabTitle
заполняется правильно, а Text
- нет.
Text
объявляется как свойство зависимостей в UserControl1
следующим образом
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(UserControl1), new UIPropertyMetadata(""));
Когда у меня есть вкладки, не связанные с ObservableCollection<TabViewModel>
, привязки работают нормально
<TabControl Grid.Row="1" Grid.Column="1">
<TabItem Header="Tab 1">
<local:UserControl1 Text="Hello" />
</TabItem>
<TabItem Header="Tab 2">
<local:UserControl1 Text="World" />
</TabItem>
</TabControl>