2013-12-18 45 views
0

我想創建一個簡單的ListView由數據集/ ItemSource填充。Silverlight/C#簡單ListView與DataBindings示例

是,當有人選擇項目-A我知道,對於項的值是 目標(ITEM-A擁有27012值)

所以纔有的XAML(VoidPanel.xaml)

<ListView ItemsSource="{Binding names.FirstName}" x:Name="lvReasons" IsSwipeEnabled="False" IsItemClickEnabled="False" SelectionMode="Single"> 
</ListView> 

的CS(VoidPanel.xaml.cs)

namespace App01.Win8.Controls 
{ 

    public sealed partial class VoidPanel : UserControl 
    { 
     private ObservableCollection<VoidListElement> names = new ObservableCollection<VoidListElement>(); 
     public VoidPanel() 
     { 
      this.InitializeComponent(); 

      names = new ObservableCollection<VoidListElement>(); 

      names.Add(new VoidListElement("ITEM-A", "27017")); 
      names.Add(new VoidListElement("ITEM-B", "27018")); 

      this.DataContext = this; 
     } 
    } 
} 

類的元素

namespace App01.Win8.DataModel 
{ 
    public class VoidListElement 
    { 
     public VoidListElement(string firstname, string lastname) 
     { 
      this.FirstName = firstname; 
      this.LastName = lastname; 
     } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
    } 
} 

問題是它只是不起作用。我沒有在屏幕上呈現任何項目。

我明白,ListView可以定義一個DataContext,在這種情況下,我不設置一個,所以我認爲它使用當前類。

我明白,ListView可以定義一個ItemSource,我已經綁定到名稱。應該從DataContext中拉取的名字。

有人可以給我一些提示,或一個體面的工作示例。

+0

的要素?我看不出我的問題有任何改變。 :-) –

+0

重新格式化您的代碼。 – Abbas

回答

2

XAML:

<ListView x:Name="lvReasons" 
    ItemsSource="{Binding names}" 
    DisplayMemberPath="FirstName" 
    IsSwipeEnabled="False" IsItemClickEnabled="False" SelectionMode="Single" > 
</ListView> 

C#:

public ObservableCollection<VoidListElement> names = new ObservableCollection<VoidListElement>(); 
+0

沒有。我的清單仍然是空的。你還有其他建議嗎?謝謝 –

+0

nope!它!謝謝 –

+0

那麼,你能把這個標記爲答案嗎? – Benjamin

0

答案...

所以有(VoidPanel.xaml)的XAML

<ListView ItemsSource="{Binding names.FirstName}" x:Name="lvReasons" 
**DisplayMemberPath="FirstName"** 
IsSwipeEnabled="False" IsItemClickEnabled="False" SelectionMode="Single"> 
</ListView> 

的CS (VoidPanel.xaml.cs)

namespace App01.Win8.Controls 
{ 

    public sealed partial class VoidPanel : UserControl 
    { 
     private ObservableCollection<VoidListElement> names; 

    **public ObservableCollection<VoidListElement> names 
    { set; get; }** 

     public VoidPanel() 
     { 
      **names = new ObservableCollection<VoidListElement>();** 

      names.Add(new VoidListElement("ITEM-A", "27017")); 
      names.Add(new VoidListElement("ITEM-B", "27018")); 

      this.DataContext = this; 
      **this.InitializeComponent();** 
     } 
    } 
} 

那你編輯Soner

namespace App01.Win8.DataModel 
{ 
    public class VoidListElement 
    { 
     public VoidListElement(string firstname, string lastname) 
     { 
      this.FirstName = firstname; 
      this.LastName = lastname; 
     } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
    } 
}