Ручная настройка имени вкладки в WPF TabControl - PullRequest
0 голосов
/ 15 мая 2018

Я привязываю свои собственные ViewModels к ItemSource TabControl и использую шаблоны для настройки содержимого и поведения заголовка.Это все работает нормально, однако в коде, когда я делаю TabControl.SelectedTab.Name - это поле пустое, так как это то, что вы обычно передаете в конструкции TabItem.

Как связать свойство ViewModel так, чтобыэто установлено как свойство имени TabItems?

Мой tabcontrol XAML

<TabControl 
    Margin="0,-2,0,0" 
    x:Name="SelectionTabs" 
    Style="{StaticResource DetailTabControl}" 
    ItemsSource="{Binding DetailTabs}" 
    SelectedValue="{Binding SelectedTab, Mode=TwoWay}" 
    ItemContainerStyle="{StaticResource DetailTabItem}" >
    <TabControl.Resources>
        <DataTemplate DataType="{x:Type detailTabs:ValuationTabViewModel}">
            <detailTabs1:ValuationTab Margin="0,10,0,10" />
        </DataTemplate>
    </TabControl.Resources>
    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Header}" />
        </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>

И мой код модели представления

 public class TabViewModel : ViewModelBase
    {
        private string _header;
        private BaseTabContentViewModel _content;

        public string Header
        {
            get => _header;
            set
            {
                _header = value; 
                RaisePropertyChanged(nameof(Header));
            }
        }

        public BaseTabContentViewModel Content
        {
            get => _content;
            set
            {
                _content = value;
                RaisePropertyChanged(nameof(Content));
            }
        }

        public TabViewModel(string header, BaseTabContentViewModel viewModel)
        {
            Header = header;
            Content = viewModel;            
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...