【发布时间】:2011-07-14 19:08:24
【问题描述】:
我有一个组合框,它绑定到一个集合,该集合本质上是一个名称/值对列表。集合可以有多个名称不同的项目,但值可能相同。
public class NameValuePair
{
public string Name { get; set; }
public string Value { get; set; }
}
public class NameValuePairCollection : List<NameValuePair>
{
public NameValuePairCollection(): base() { }
}
所以在我的用户控件中,我有一个名为 items 的私有字段,它是该 NameValuePair 集合的一个实例:
private NameValuePairCollection items = new NameValuePairCollection()
在某个地方,集合被初始化并且项目被添加到其中。但是,我看到的问题是当我尝试设置绑定到此集合的组合框的选定索引时:
this.CboItemsSelector.SelectedIndex = 3;
或
this.CboItemsSelector.SelectedItem = this.items[3];
所选项目存在,但 UI 未同步。 UI 的选择器仍然默认为列表中的第一项,即使 SelectedItem 的 Name 和 Value 属性确实对应于基础集合的索引 3 中的任何内容!
关于如何强制 ComboBox 刷新自己的任何想法?或者只是简单地解决问题?我知道这是一个很小的问题,但它足以迫使我重写相当多的代码...... :( :( :(
谢谢!
【问题讨论】:
-
您能发布您的绑定代码吗?你有 Mode=TwoWay 吗?
标签: c# silverlight user-interface silverlight-4.0 combobox