2014-03-28 88 views
0

我想從xaml綁定列表框,但似乎我做錯了它。這是我的XAML頁面。ListBox ItemsSource不適用於XAML

<Grid x:Name="LayoutRoot" Background="Transparent"> 
<!--Pivot Control--> 
<phone:Pivot Title="MY APPLICATION"> 
<!--Pivot item two--> 
<phone:PivotItem Header="item2"> 
<Grid> 
    <ListBox Foreground="Black" x:Name="ls" ItemsSource="{Binding MyLang}" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
     <TextBlock Text="{Binding Language}"></TextBlock> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 
</phone:PivotItem> 
</phone:Pivot> 
</Grid> 

背後

DataSource ds = null; 
public List<TranslationLanguage> MyLang; 
public PivotPage2() 
{ 
    ds = new DataSource(); 
    MyLang = ds.getTranslationLanguages(); //return collections and contains 13 rows 
    InitializeComponent(); 
    DataContext = this; 
} 
public class TranslationLanguage 
{ 
     [PrimaryKey] 
     public byte LanguageID{get;set;} 
     public string Language{get;set;} 
     public string Description { get; set; } 
     public bool IsActive { get; set; } 
     public FlowDirection FlowDirection { get; set; } 
     public string DownloadURL { get; set; } 
     public bool IsDownloaded { get; set; } 
     public string ImagePath { get; set; } 
} 

我真的很困惑,爲什麼它不能在所有的工作代碼?

回答

4

結合可以完成只在物業上,MyLang是不屬性。製造MyLang屬性

public List<TranslationLanguage> MyLang{ get; set;}; 
+0

謝謝!這工作! – ARH

0

既然你從後面的代碼綁定的DataContext的,你需要設置窗口的DataContext爲

DataContext="{Binding RelativeSource={RelativeSource Self}} 
+0

謝謝!我必須放置這段代碼? – ARH

+0

...您需要將它設置爲Xaml中Window標記的屬性。添加完後,您可以刪除「DataContext = this;」行從構造函數 –

+0

還需要將MyLang更改爲@ ramb00建議的屬性,因爲綁定僅適用於屬性 –

-1

你必須這樣做:

DataContext="{Binding RelativeSource={RelativeSource Self}} 
+1

好吧,datacontext在構造函數中設置:'DataContext = this;'。所以不需要再改變它 – Default

相關問題