【发布时间】:2010-03-17 10:40:27
【问题描述】:
这可能是非常直截了当的事情,我真的认为它应该按原样工作,但事实并非如此......我有以下情况:
var itemSource = new Binding
{
Path = new PropertyPath("ItemList"),
Mode = BindingMode.OneTime
};
comboBox.SetBinding(ItemsControl.ItemsSourceProperty, itemSource);
ItemList 很简单:
public IList<string> ItemList
{
get
{
return Enum.GetNames(typeof(OptionsEnum)).ToList();
}
}
我本来希望这会将项目列表绑定到 Combobox,当我在 XAML 中执行此操作时,它工作正常,但我必须在后面的代码中执行此操作...
有什么想法吗?
【问题讨论】:
-
为什么一定要在代码中做呢?
-
必须在代码中完成,因为我根据特定设置将组合框绑定到不同的属性。可以在 UI 中放置两个单独的组合框并在 XAML 中绑定它们,然后在我需要的那个上设置可见性,但如果我可以在路由后面编写代码,那我认为这不是正确的方法。
-
我会在视图模型中创建一个属性来检查设置并公开适当的列表,而不是使用代码隐藏。它更容易测试。
-
好点罗伯特...没想到这一点!谢谢!