我正在尝试理解 Binding,所以我想出了一个非常简单的程序来尝试和测试它。
我的 MainWindow 中有以下元素:
<ComboBox Name="comboBox1" ItemsSource="{Binding ComboItems}" />
在我的代码中,我有以下可观察的集合:
private readonly ObservableCollection<string> comboItems =
new ObservableCollection<string>();
public ObservableCollection<string> ComboItems
{
get {return comboItems; }
}
只要组合框从一开始就位于 MainWindow XAML 中,我就可以在运行时的任何时候以这种方式成功添加项目:
ComboItems.Clear();
ComboItems.Add("Item");
我的问题是,如果我从文件中加载它,如何让这个 ComboBox 更新?我有以下代码来保存和加载文件:
File.WriteAllText("ComboBox.xaml", saveComboBox)
这只是我保存的最后一行,我还有其他项目似乎对本次讨论无关紧要。
ComboBox comboBox = System.Windows.Markup.Xamlreader.Load(stream) as ComboBox;
这成功保存并加载了我的组合框。我现在遇到的问题是代码:
ComboItems.Clear();
ComboItems.Add("Item");
不再工作。我正在尝试为我将要做的一个新项目学习数据绑定。这个项目需要为用户界面加载 xaml 文件,我需要在加载后填充 ComboBox。
解决这个问题的最简单和最有效的方法是什么?