Редактирование таблицы 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 и работать через него, но присвоенное имя не отображается. Не понимаю как можно решить данную проблему.