Добавление значения из TextBox в коллекцию MVVM WPF

Подскажите, пожалуйста, каким образом можно добавить значение введённое в TextBox в ObservableCollection и отобразить ее, например, в DataGrid.

<Window x:Class="WpfApp2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApp2"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">

<Window.DataContext>
    <local:MainWindowViewModel/>
</Window.DataContext>
<DockPanel>
    <TabControl>
        <TabItem Header="Категории">
            <StackPanel>
                <TextBlock Text="Введите наименование категории" Margin="5" FontSize="14"/>
                <WrapPanel>
                    <TextBox Text="{Binding Category}" Width="300"/>
                    <Button Grid.Column="1" Height="20" Content="Добавить" Margin="5"
                            Command="{Binding CategoryCommand}"/>
                </WrapPanel>
                <TextBlock Text="Наименование" HorizontalAlignment="Center" FontSize="14"/>
                <Grid >
                    <DataGrid ItemsSource="{Binding Categories}" 
                              AutoGenerateColumns="False" CanUserAddRows="False" >
                        <DataGrid.Columns>
                            <DataGridTextColumn  Header="Категория" Width="*" Binding="{Binding Category}" IsReadOnly="True"/>
                        </DataGrid.Columns>
                    </DataGrid>
                </Grid>
            </StackPanel>
        </TabItem>
    </TabControl>
</DockPanel>
public class MainWindowViewModel
{
    public ObservableCollection<Categories> Categories { get; set; }

    public MainWindowViewModel()
    {
        //CategoryCommand = new LambdaCommand(OnCommandExecuted, CanCommandExecute);

        Categories = new ObservableCollection<Categories>
        {
            new Categories {Category = "Продукты питания"},
        };
        
    }
    public ICommand CategoryCommand { get; }

    private bool CanCommandExecute(object p)
    {
        return true;
    }

    private void OnCommandExecuted(object p)
    {
        //Код для проверки команды(создает пустую строку в DataGrid)
        Categories _category = new Categories();
        Categories.Add(_category);
    }
}

public class Categories : BaseViewModel
{
    private string category;
    
    public string Category
    {
        get { return category; }
        set
        {
            if (category != value)
            {
                category = value;
                OnPropertyChanged("Category");
            }
        }
    }
}

введите сюда описание изображения


Ответы (0 шт):