【问题标题】:combo box data binding issue in silverlightSilverlight 中的组合框数据绑定问题
【发布时间】:2011-05-12 09:59:42
【问题描述】:

我在我的页面上加载了 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 获得价值,但我不知道是什么导致了这个麻烦.. 非常感谢任何帮助。 谢谢, 杂志

【问题讨论】:

  • “给我一个地狱”并不能很好地描述您的问题。实际发生了什么?您是否单步执行了代码并检查了变量以确定它们是否包含您所期望的内容?

标签: silverlight data-binding silverlight-4.0 combobox


【解决方案1】:

在 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" />

编辑二

要加载不同的集合:

在代码中Cboadproducts.DataContext = differentList;

或

使用 ObservableCollection 代替 List 并使用 Clear() 从集合中删除项目并使用 Add() 添加其他项目

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

【讨论】:

  • 我尝试使用 datacontext 并且值被绑定但它没有显示任何值...我试图在选择更改事件中查看消息框中的值..即使我得到了消息框中的绑定值,但它不显示在组合框中。
  • 你看过调试输出了吗?那里有任何(绑定)错误吗?
  • nope..我在调试中没有发现任何错误..有没有其他方法可以加载组合框..
  • 我添加了我的测试代码。你能看出和你有什么不同吗?
  • 感谢它的作品......我错过了 ItemsSource="{Binding}" 在添加它的魅力后......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
相关资源
最近更新 更多