我正在开发silverlight 4应用程序。我使用以下列表框进行动态绑定
<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 :(得分:0)
最初的问题是Data1
类需要公开(目前是其内部)。
但是,如果你真的想要动态绑定,那么你可能意味着你希望能够在列表中添加新条目并让它们出现在UI中。
因此,您应该使用ObservableCollection<Data1>
而不是简单的List<Data1>
。
您可能还希望能够修改单个条目的属性,并在UI中反映这些更改,为此,您需要在INotifyPropertyChanged
类上实施Data1
。