【问题标题】:How to do dynamic binding with Listbox in silverlight?如何在silverlight中与Listbox进行动态绑定?
【发布时间】:2011-08-29 13:48:42
【问题描述】:

我正在开发 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 或后面的代码有什么问题吗?你能告诉我哪里出错了吗?您能否提供我可以解决上述问题的任何解决方案?

【问题讨论】:

    标签: silverlight data-binding silverlight-4.0 listbox


    【解决方案1】:

    最初的问题是Data1 类需要是公共的(目前是内部的)。

    但是,如果您真的想要动态绑定,那么您可能意味着您希望能够在列表中添加新条目并让它们出现在 UI 中。

    因此,您应该使用ObservableCollection&lt;Data1&gt; 而不是简单的List&lt;Data1&gt;

    您可能还希望能够修改单个条目的属性并将这些更改反映在 UI 中,为此您需要在 Data1 类上实现 INotifyPropertyChanged

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-11
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多