【发布时间】:2014-09-19 17:03:50
【问题描述】:
我正在开发 WPF 应用程序,它包含 MainWindow.xaml 作为容器来显示 Mainwindow 中的所有用户控件。我已经在 Mainwindow.xaml 中定义了所有菜单,并在 mainwindow.xaml 网格中显示了相应的 usercontol。
下面是我的主窗口网格定义和相应的代码隐藏事件处理程序代码
<Grid x:Name="Container" Grid.Column="0" Width="0" Margin="0,0,0,10" Visibility="Visible">
</Grid>
菜单点击事件处理程序背后的代码
当 maindow 在登录后加载时,它将调用并显示 CustomerListView 用户控件
private void Window_Loaded(object sender, RoutedEventArgs e)
{
CustomerListView CLView = new CustomerListView ();
Container.Children.Clear();
Container.Children.Add(CLView );
Container.Children[0].SetValue(WidthProperty, CLView.Width);
Container.Children[0].SetValue(HeightProperty, CLView.Height);
}
//客户菜单点击事件
public void NewCustomer_Menu_Click(object sender, RoutedEventArgs e)
{
//AddCustomer is User control
AddCustomer AddEmployeeObject = new AddCustomer();
Container.Children.Clear();
Container.Children.Add(AddEmployeeObject);
Container.Children[0].SetValue(WidthProperty, AddEmployeeObject.Width);
Container.Children[0].SetValue(HeightProperty, AddEmployeeObject.Height);
}
一切正常,直到我通过新的登录控件集成我的应用程序。成功登录后,我显示了主窗口。如果我正在执行一些操作,例如添加新客户(单独的用户控件)或编辑新客户(单独的用户控件),我的应用程序会自动关闭。如何解决这个问题?
登录后显示主窗口的代码
if (IsValidUser)//Bool variable to validate user
{
//Hide the Loginwindow
this.Hide();
//Display mainwindow
MainWindow objMainWindow = new MainWindow();
objMainWindow.ShowDialog();
}
如果我执行任何更新或插入操作,它会在插入、更新或刷新后关闭应用程序。 似乎每次在插入或更新或尝试加载另一个用户控件或刷新主窗口网格内的用户控件后重新加载 Maindow。如何解决此问题?
【问题讨论】:
标签: wpf xaml showdialog