Array
(
)

Binding com Csharp

Riechelmann
   - 19 out 2015

Bom Dia
Tenho o XAML, onde se eu defino um resource lPessoa eu consigo fazer o Binding mas não sei como recuperar essa informação sem ser pelo TextBox, porém se criar a classe pessoa no Código como faço para fazer o Binding dinamicamente pelo XAML?
#Código
<Window x:Class="TesteBinding.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:TesteBinding"
mc:Ignorable="d"
Title="MainWindow" Height="150" Width="300">
<Window.Resources>
<local:Pessoa x:Key="lPessoa" Nome="Lucas" Idade="27"/>
</Window.Resources>
<Canvas>
<Label Canvas.Top="10" Canvas.Left="10" >Nome</Label>
<TextBox Name="txtNome" Width="200" Height="20" Canvas.Top="10" Canvas.Left="70" Text="{Binding Source={StaticResource lPessoa},Path=Nome,Mode=TwoWay}"/>
<Label Canvas.Top="40" Canvas.Left="10" >Idade</Label>
<TextBox Name="txtIdade" Width="200" Height="20" Canvas.Top="40" Canvas.Left="70" Text="{Binding Source={StaticResource lPessoa},Path=Idade,Mode=TwoWay}" />
<Button Name="btnMsg" Width="100" Height="30" Content="Mensagem" Click="onClick" Canvas.Top="70" Canvas.Left="10" />
</Canvas>
</Window>

#Código
public class Pessoa : INotifyPropertyChanged
{
private string _nome;
private string _idade;
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string prop)
{
if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(prop)); }
}
public string Nome
{
get { return _nome; }
set
{
if (_nome != value)
{
_nome = value;
RaisePropertyChanged("Nome");
}
}
}
public string Idade
{
get { return _idade; }
set
{
if (_idade != value)
{
_idade = value;
RaisePropertyChanged("Idade");
}
}
}
}

Riechelmann
   - 19 out 2015

Consegui alimentar o DataContext do Canvas pelo código

#Código
Pessoa pessoa = new Pessoa();
public MainWindow()
{
InitializeComponent();

pessoa.Nome = "Lucas";
pessoa.Idade = "27";
this.teste.DataContext = pessoa;
}


Porém gostaria de saber como faz para alimentar o DataContext diretamente no código XAML

exemplo

#Código
<Canvas DataContext="{local:pessoa}">
....
</Canvas>