【发布时间】:2009-11-16 20:46:58
【问题描述】:
我正在尝试为我的应用程序加载首选项窗口,并且我希望最初禁用应用按钮,然后在更新首选项时,再次启用应用按钮。我有一些控件数据绑定到首选项对象,发生的情况是 窗口加载后,组合框事件被触发。有没有什么事情是在一切都稳定之后才保证最后发生的?
这是我的代码的样子(应用按钮总是在窗口加载后启用):
private void Window_Loaded(object sender, RoutedEventArgs e)
{
_preferencesData = new PreferencesDataContext();
LayoutRoot.DataContext = _preferencesData;
ButtonApply.IsEnabled = false;
}
private void ComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
ButtonApply.IsEnabled = true;
}
有趣的是,这仅发生在文本框和组合框上,而不是复选框或单选按钮。
【问题讨论】:
-
感谢所有伟大的建议。我最终将一个名为“IsDirty”的字段添加到我的首选项数据对象中,然后我将应用按钮的 IsEnabled 属性绑定到该字段。通过这种方式,我按照 Joseph 和 ascalonx 的建议一起消除了所有事件。