Привязка текста TextBlock к элементу TabControl в WPF - PullRequest
0 голосов
/ 02 мая 2011

У меня есть окно WPF с элементом управления вкладками, и я определяю TabItems в файле XAML, например:

<TabControl>
    <TabItem Name="tab1" Tag="Transactions"/>
    <TabItem Name="tab2" Tag="Promotions" />
    ...
</TabControl>

В другом месте экрана у меня есть текстовый блок, который я хочу использовать дляотобразить значение тега выбранной вкладки.Он работает при начальной загрузке экрана и при выборе вкладки «транзакции», но при выборе другой вкладки она пуста.Почему это так, и как я могу заставить его отображать тег любой выбранной вкладки?Вот текстовый блок:

<TextBlock Text="{Binding ElementName=tabControl1, Path=SelectedItem.Tag}"/>

1 Ответ

0 голосов
/ 02 мая 2011

Это работает, как и ожидалось для меня.(Вы установили имя TabControl, верно?)

Обратите внимание, что, если TabControl заполняется через ItemsSource, в отличие от вашего примера кода, SelectedItem не будет содержать TabItem, но объект данных, из которого создается TabItemпоэтому путь привязки SelectedItem.Tag не работает.

Используемый код:

<!-- Both controls enclosed in a Stackpanel -->
<TabControl Name="tabControl1">
    <TabItem Name="tab1" Tag="Transactions"/>
    <TabItem Name="tab2" Tag="Promotions" />
</TabControl>
<TextBlock Text="{Binding ElementName=tabControl1, Path=SelectedItem.Tag}"/>

Заголовки вкладок, очевидно, будут пустыми, но их можно выбрать.

...