2013-08-22 3 views
0

Я только начинаю использовать WPF, но моя привязка не работает.
Когда я запускаю приложение, экран просто пуст.WPF привязка с ContentControl не работает

Это мой XAML

<Window x:Class="HelloWPF.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <ContentControl Content="{Binding PersonOne}" Width="auto" Height="auto" > 
     <ContentControl.ContentTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBlock Text="{Binding FirstName}" FontSize="15" /> 
        <TextBlock Text="{Binding Age}" FontSize="12" /> 
       </StackPanel> 
      </DataTemplate> 
     </ContentControl.ContentTemplate> 
    </ContentControl> 
</Grid> 

Это код:

public partial class MainWindow : Window 
{ 
    public Person PersonOne; 
    public MainWindow() 
    { 
     InitializeComponent(); 

     PersonOne = new Person(); 
     PersonOne.Gender = Gender.Female; 
     PersonOne.Age = 24; 
     PersonOne.FirstName = "Jane"; 
     PersonOne.LastName = "Joe"; 

     this.DataContext = this; 
    } 
} 

И это человек класс

public class Person 
{ 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 

    public int Age { get; set; } 
    public Gender Gender { get; set; } 
} 

public enum Gender 
{ 
    Male, 
    Female 
} 

Что я делаю неправильно?

ответ

2

Вы не можете связываться с полями, только свойства, поэтому изменить:

public Person PersonOne; 

к этому:

public Person PersonOne {get;set;} 

Кстати, вы, вероятно, нужно создать ViewModel, а не помещать данные внутри Само окно.

+0

Я бы также сделал это DependencyProperty, чтобы вы могли подключиться к изменениям свойств ... – Nick

+0

@Nick не согласен. OP необходимо создать надлежащую ViewModel. использование DependencyProperties для данных, которое действительно принадлежит ViewModel, является наихудшей идеей когда-либо. –

+0

, назвав его «худшей идеей когда-либо», немного суровый ... не все требует полномасштабной структуры MVVM. – Nick

Смежные вопросы