2011-05-20 56 views
1

我正在開發silverlight 4應用程序。我使用動態以下列表框結合如何在Silverlight中使用Listbox進行動態綁定?

<ListBox Margin="44,100,46,138" x:Name="lstbox1"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Vertical"> 
         <TextBlock Text="{Binding A1}" Foreground="Gray" FontSize="14" Width="100" Height="20" ></TextBlock> 
         <TextBlock Text="{Binding A2}" Foreground="Red" Width="100" Height="20" ></TextBlock> 
         <Line X1="-3400" Y1="32" X2="10" Y2="32" Stroke="Gray" StrokeThickness="1"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

我正在使用的代碼下面的代碼背後

List<Data1> ObserCollObj = new List<Data1>(); 
     public MainPage() 
     { 
      InitializeComponent(); 
      Data1 obj1 = new Data1("aaa", "dasd"); 
      ObserCollObj.Add(obj1); 
      lstbox1.ItemsSource = ObserCollObj; 

     } 

我使用下面的類

class Data1 
    { 
     public String A1 { get; set;} 
     public String A2 { get; set; } 
     public Data1() 
     { 
     } 
     public Data1(String a1, String a2) 
     { 
      A1 = a1; 
      A2 = a2; 
     } 
    } 

我使用上述所有代碼但動態綁定不起作用。我的xaml或代碼背後有什麼問題?你能告訴我我要去哪裏嗎?您能否爲我提供解決上述問題的解決方案?

回答

0

最初的問題是Data1類需要公開(目前它的內部)。

但是,如果您確實需要動態綁定,那麼您可能意味着您希望能夠在列表中添加新條目並讓它們出現在UI中。

因此,您應該使用ObservableCollection<Data1>而不是簡單的List<Data1>

您可能還希望能夠修改單個條目的屬性,並將這些更改反映在UI中,以便您需要在Data1類上實現INotifyPropertyChanged

相關問題