2013-08-01 39 views
1

我看起來是video-exampleWPF - 綁定到公共字段

它工作正常。但我想讓它複雜一些。

創建一個課程。這將是從視頻例如Person類簡單的包裝上面

public class MetaPerson 
{ 
    public Person Person; 
    public String SomeMeta; 
} 

在構造函數中的窗口寫代碼

public MainWindow() 
{ 
    InitializeComponent(); 

    var metaPerson = new MetaPerson 
          { 
           Person = new Person("Lola", "Azazaeva", 25, Gender.Female), 
           SomeMeta = "Eto some meta!" 
          }; 

     //Setas datacontext 
     DataContext = metaPerson; 
    } 

在XAML我在視頻例子中寫道,如:

<StackPanel> 
     <ContentControl Content="{Binding}"> 
      <ContentControl.ContentTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <TextBlock Text="{Binding Person.Name}" FontSize="12" Foreground="Red"/> 
        </StackPanel> 
       </DataTemplate> 
      </ContentControl.ContentTemplate> 
     </ContentControl> 
    </StackPanel> 

那沒有工作。

 <StackPanel> 
      <ContentControl Content="{Binding Person}"> 
       <ContentControl.ContentTemplate> 
        <DataTemplate> 
         <StackPanel> 
          <TextBlock Text="{Binding Name}" FontSize="12" Foreground="Red"/> 
         </StackPanel> 
        </DataTemplate> 
       </ContentControl.ContentTemplate> 
      </ContentControl> 
     </StackPanel> 

這簡化版,工作太:(

我在做什麼錯

回答

2

唯一的問題是,你所做的變量作爲成員 - 他們必須在order屬性用於綁定工作

public class MetaPerson 
{ 
    public Person Person { get; set; } 
    public String SomeMeta { get; set; } 
} 
+0

確實有效,thx。還是不習慣WPF的功能 – monstr