Создание Control в рамках паттерна MVVM

86
06 апреля 2022, 12:40

Доброго времени суток!

У меня есть элемент TabControl, в котором я хочу реализовать кастомные Header, используя HeaderTemplate. Для этого я создал свой элемент:

<UserControl x:Class="iRestAdmin.CustomViews.TabHeader"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:customViews="clr-namespace:iRestAdmin.CustomViews">
    <UserControl.DataContext>
        <customViews:TabHeaderVm />
    </UserControl.DataContext>
    <StackPanel Margin="10">
        <TextBlock Text="{Binding F}"
                   HorizontalAlignment="Center" />
        <TextBlock Text="{Binding HeaderText}" />
    </StackPanel>
</UserControl>

И реализовал для него ViewModel:

public class TabHeaderVm
{
    public string F { get; set; }
    public string HeaderText { get; set; }
}

В самом классе View создал два поля для того, чтобы из Xaml присваивать значения TextBlock'ам:

public partial class TabHeader
{
    public string F
    {
        set => ((TabHeaderVm) DataContext).F = value;
    }
    public string HeaderText
    {
        set => ((TabHeaderVm) DataContext).HeaderText = value;
    }
    public TabHeader()
    {
        InitializeComponent();
    }
}

В результате сам TabControl стал выглядеть следующим образом:

<TabControl TabStripPlacement="Bottom">
    <TabItem>
        <TabItem.HeaderTemplate>
            <DataTemplate>
                <customViews:TabHeader F="F1" HeaderText="Вкладка 1"></customViews:TabHeader>
            </DataTemplate>
        </TabItem.HeaderTemplate>
    </TabItem>
</TabControl>

В результате всех манипуляций привязка к текста к `TextBlock'ам не идет. Как правильно реализовать то, что мне требуется, в рамках MVVM?

UPD: Реализовал INotifyPropertyChanged у `ViewModel' и все заработало. Сейчас хотелось бы просто узнать, насколько правильно я реализовал все это

READ ALSO
Нумерация слайдов в slick slider

Нумерация слайдов в slick slider

У меня есть слайдер написанный на slick slider(там есть клавиши переключения, но речь не о них)У меня в макете есть цифры переключения слайдера(картинка...

70
Как изменить фоновое видео на HTML-странице через определенное время?

Как изменить фоновое видео на HTML-странице через определенное время?

Я бы хотел сделать 2 фоновое видео на страницуПервое видео фиксируется на указанный период времени, второе после предыдущего и является постоянным

201
Mixitup фильтр. Настроить сортировку

Mixitup фильтр. Настроить сортировку

Помогите пожалуйста с фильтром mixitup Как сделать так что-бы при перезагрузке страницы, фильтр сразу сортировал по Первому залу и 14 числу?? Сейчас...

146