silverlight中的组合框数据绑定问题

时间:2011-05-12 09:59:43

标签: silverlight data-binding silverlight-4.0 combobox

我正在我的页面上加载5个组合框,我装了4个组合框,但是第5个组合框给了我一个地狱......

我会发布我在这里做过的代码......如果我错了,请纠正我。

<ComboBox Height="23" HorizontalAlignment="Left" Margin="605,131,0,0"
  Name="Cboadproducts" VerticalAlignment="Top" Width="168"    TabIndex="3" 
  DisplayMemberPath="AdProduct" SelectedValuePath="AdProdctID" />

代码: -

   Cboadproducts.ItemsSource = null;
   List<MyRef.Country> list = ee.Result.ToList();
   list.Insert(0, new MyRef.Country() { AdProduct = "Select", AdProdctID = -1 });
   Cboadproducts.ItemsSource = list;

我从DB获得了价值,但我不知道造成这种麻烦的原因。 任何帮助都非常感谢。 谢谢, MAGZ

1 个答案:

答案 0 :(得分:0)

在xaml中设置ItemsSource="{Binding}"

在代码中设置Cboadproducts.DataContext = list;

修改

代码:

public class Country
{
    public int AdProductID
    {
        get;
        set;
    }
    public string AdProduct
    {
        get;
        set;
    }
}
public Window1()
{
    InitializeComponent();

    List<Country> list = new List<Country>
    {
        new Country{ AdProduct="Select", AdProductID = -1},
        new Country{ AdProduct="Select1", AdProductID = 1},
        new Country{ AdProduct="Select2", AdProductID = 2},
        new Country{ AdProduct="Select3", AdProductID = 3},
        new Country{ AdProduct="Select4", AdProductID = 4},
    };

    Cboadproducts.DataContext = list;
}

XAML:

    <ComboBox Height="23"

              x:Name="Cboadproducts"
              ItemsSource="{Binding}"
              VerticalAlignment="Top"
              Width="168"
              TabIndex="3"
              DisplayMemberPath="AdProduct"
              SelectedValuePath="AdProdctID" />

编辑II

要加载其他集合:

在代码中Cboadproducts.DataContext = differentList;

而不是使用List使用ObservableCollection并使用Clear()从集合中删除项目,并使用Add()

添加其他项目

ObservableCollection实现了INotifyCollectionChanged,它在集合发生变化时通知控件,然后导致UI更新。