2013-08-22 114 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;} 

順便說一句,你可能需要創建一個視圖模型而不是把裏面的數據的窗口本身。

+0

我也會讓它成爲一個DependencyProperty,所​​以你可以掛鉤屬性更改... – Nick

+0

@尼克不同意。 OP需要創建一個合適的ViewModel。對於真正屬於ViewModel的數據使用DependencyProperties是有史以來最糟糕的想法。 –

+0

稱之爲「有史以來最糟糕的想法」有點苛刻......並不是每件事都需要一個全面的MVVM結構。 – Nick