Я узнаю о привязке данных, особенно с DataGrid
.В моем коде у меня есть DataGrid
и Label
, которые показывают значение первой ячейки DataGrid
.Выход XAML выглядит как .Учитывая изображение ниже, содержимое метки рядом с Значение первой ячейки равно: Обезьяна , которую, я думаю, я получил из первой ячейки DataGrid.Теперь я хотел обновить слева от Значение первой ячейки: , когда я изменяю значение в моей первой ячейке DataGrid
.Но я не могу этого достичь.
Ниже - мой Код и файл XAML
КОД
namespace DataGridExampleSelfTry
{
public class MainWindowVM:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged = (sender, e) => { };
private string _FirstCell;
public string FirstCell
{
get{ return _FirstCell; }
set
{
_FirstCell = value;
PropertyChanged(this,new PropertyChangedEventArgs(nameof(FirstCell)));
}
}
public string SecondCell { get; set; }
private ObservableCollection<animies> _animelistforbinding;
public ObservableCollection<animies> animelistforbinding
{ get
{
return _animelistforbinding;
}
set
{
_animelistforbinding = value;
PropertyChanged(this, new PropertyChangedEventArgs(nameof(animelistforbinding)));
}
}
ObservableCollection<animies> addinganime = new ObservableCollection<animies>();
public MainWindowVM()
{
addinganime.Add(new animies("Monkey", "D Luffy"));
animelistforbinding = addinganime;
FirstCell = animelistforbinding[0].FirstName;
SecondCell = animelistforbinding[0].LastName;
}
}
public class animies:INotifyPropertyChanged
{
private string _FirstName;
public event PropertyChangedEventHandler PropertyChanged = (sender, e) => { };
public string FirstName
{
get { return _FirstName; }
set
{
_FirstName = value;
PropertyChanged(this, new PropertyChangedEventArgs(nameof(FirstName)));
}
}
public string LastName { get; set; }
public animies(string dFirstName, string dLastName)
{
FirstName = dFirstName;
LastName = dLastName;
}
}
}
XAML
<Window x:Class="DataGridExampleSelfTry.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:DataGridExampleSelfTry"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="450">
<Window.DataContext>
<local:MainWindowVM/>
</Window.DataContext>
<StackPanel>
<DataGrid x:Name="XAML_DataGrid"
AutoGenerateColumns="False" CanUserAddRows="False"
ItemsSource="{Binding animelistforbinding}" Margin="5"
CanUserSortColumns="False" HorizontalGridLinesBrush="Gray"
VerticalGridLinesBrush="Gray" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding FirstName, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Header="First name" Width="*" IsReadOnly="False"/>
<DataGridTextColumn Binding="{Binding LastName}" Header="Last Name" Width="*" IsReadOnly="False"/>
</DataGrid.Columns>
</DataGrid>
<StackPanel Orientation="Horizontal">
<Label Content="The First Cell Value is : "/>
<Label Content="{ Binding FirstCell}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="The Second Cell Value is : "/>
<Label Content="{ Binding SecondCell}"/>
</StackPanel>
<Button Content="Button" Margin="50"/>
</StackPanel>
</Window>
Спасибо за вашу помощь.