【发布时间】:2011-08-25 14:41:47
【问题描述】:
我面临一个非常不寻常的问题,我有一个 UserControl,它显示 ChildWindow 对这个 ChildWindow 执行一些操作,我在完成操作后关闭它并(比如说)再次打开它,它工作正常,但很快当我关闭这个 ChildWindow 时,UserControl 被禁用。
我的应用程序上的所有 ChildWindows 都会发生这种情况,即,如果我打开(比如说)ChildWindow01 然后关闭它,然后打开 ChildWindow02 并关闭它,则基本 UserControl 将被禁用。
它是一个 MVVM 应用程序,但我从 UserControl.xaml.cs 打开这些 ChildWindows,按钮单击事件。
附:我正在为我的应用程序使用 Galasoft MVVM 框架。
请提出建议。
编辑
用户控件 XAML
<StackPanel Style="{StaticResource QuizEditorStackPanelStyle}">
<HyperlinkButton x:Name="lnkSetting" Content="Settings"
Command="{Binding QuizSettingCommand}" CommandParameter="{Binding SettingId}"/>
</StackPanel>
调用 ViewModel -> RelayCommand,它打开一个子窗口(这是 VM 中的私有属性)
private ChildWindow QuizSettingWindow {
get {
return new QuizSetting(this.QuizSettingId);
}
}
子窗口由
打开private void OpenQuizSettingScreen(long quizSettingId) {
this.QuizS ettingWindow.Show();
}
在self的按钮事件上关闭子窗口
【问题讨论】:
-
请显示一些代码?你能在一个简单的小应用程序中重现吗?
-
@AnthonyWJones,这里是代码的sn-ps;
-
UserControl XAML
调用 ViewModel -> RelayCommand,以 private ChildWindow QuizSettingWindow { get { return new QuizSetting(this.QuizSettingId); } } 子窗口由 private void OpenQuizSettingScreen(long quizSettingId) { this.QuizSettingWindow.Show();} 子窗口在 self 的按钮事件上关闭 -
最好在您的问题中添加代码并使用代码格式,以便更容易阅读。
-
@Akash Lomas 已将您的代码添加到您的帖子中。
标签: silverlight mvvm mvvm-light