Редактирование таблицы wpf DataGrid которая расположена на TabControl

Прошу помочь разобраться с редактированием таблицы c# wpf DataGrid которая расположена в TabControl.

Создаю таблицу следующим образом

Код xaml

<Grid>
<TabControl HorizontalAlignment="Left" Height="425" Margin="10,55,0,0" VerticalAlignment="Top" Width="780" TabStripPlacement="Left" ItemsSource="{Binding}">
    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Header}"/>
        </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
        <DataTemplate>
            <DataGrid ItemsSource="{Binding Data}" AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Наименование" Binding="{Binding Title}" />
                    <DataGridTextColumn Header="Значение на ПК" Binding="{Binding ValueComputer}" />
                    <DataGridTextColumn Header="Эталонное значение" Binding="{Binding ValueStandart}"/>
                </DataGrid.Columns>
            </DataGrid>
        </DataTemplate>
    </TabControl.ContentTemplate>
</TabControl>
 <Button Content="Button" HorizontalAlignment="Left" Height="100" Margin="130,503,0,0" VerticalAlignment="Top" Width="586" Click="Button_Click_1"/>

Код .CS

namespace TestProject{
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        var tabs = new ObservableCollection<TabcontrolHeader>();

        var Tab1 = new TabcontrolHeader() { Header = "Tab1", };
        Tab1.Data.Add(new Tabcontrol() { Title = "Наименование ПО", ValueComputer = "Значение на ПК", ValueStandart = "Стандартное значение"});
        Tab1.Data.Add(new Tabcontrol() { Title = "Наименование ПО", ValueComputer = "Значение на ПК", ValueStandart = "Стандартное значение"});
        

        var Tab2 = new TabcontrolHeader() { Header = "Tab2", };
        Tab2.Data.Add(new Tabcontrol() { Title = "Наименование ПО", ValueComputer = "Значение на ПК", ValueStandart = "Стандартное значение" });
        Tab2.Data.Add(new Tabcontrol() { Title = "Наименование ПО", ValueComputer = "Значение на ПК", ValueStandart = "Стандартное значение" });

        tabs.Add(Tab1);
        tabs.Add(Tab2);
        DataContext = tabs;
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {

    }
}

class TabcontrolHeader
{
    public string Header { get; set; }
    public ObservableCollection<Tabcontrol> Data { get; set; } = new ObservableCollection<Tabcontrol>();


}


class Tabcontrol : INotifyPropertyChanged
{

    public string title;
    public string valuecomputer;
    public string valuestandart;

    public string Title
    {
        get { return title; }
        set
        {
            title = value;
            OnPropertyChanged("Наименование");
        }
    }
    public string ValueComputer
    {
        get { return valuecomputer; }
        set
        {
            valuecomputer = value;
            OnPropertyChanged("Значение на ПК");
        }
    }
    public string ValueStandart
    {
        get { return valuestandart; }
        set
        {
            valuestandart = value;
            OnPropertyChanged("Эталонное значение");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public void OnPropertyChanged([CallerMemberName] string prop = "")
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(prop));
    }

}}

Каким образом я могу проверять\изменить значения в таблице на вкладках Tab1 или Tab2 по нажатию кнопки Button_Click_1 ? Пробовал присвоить имя для DataGrid и работать через него, но присвоенное имя не отображается. Не понимаю как можно решить данную проблему.


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