Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Заморочка интересная с WPF binding

04.12.20 15:28
Re: Заморочка интересная с WPF binding
 
Программист коренной житель
в ответ moose 02.12.20 17:23

ViewModel:

public class MainViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

public MainViewModel()
{
Foo = new RelayCommand(Do_Foo);
}

private Person _person = new Person("John Smith", 33);
public Person Person
{
get
{
return _person;
}
}

public ICommand Foo { get; private set; }

private void Do_Foo(object obj)
{
_person.Age++;
PropertyChanged(this, new PropertyChangedEventArgs("Person"));
}
}


XAML:

<Window x:Class="WpfApplication1.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:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainViewModel />
</Window.DataContext>
<StackPanel>
<TextBlock>
<Run Text="Person name:" />
<Run Text="{Binding Person.Name, Mode=OneWay}" />
</TextBlock>

<TextBlock>
<Run Text="Person age:" />
<Run Text="{Binding Person.Age, Mode=OneWay}" />
</TextBlock>
<Button Content="Do Foo" Command="{Binding Foo}" />
</StackPanel>
</Window>


Работает.

 

Перейти на