【发布时间】:2021-01-22 12:01:54
【问题描述】:
环境总结: 我的 Visual Studio WPF(非核心)应用程序遇到了障碍。 我创建了 2 个不同的窗口,其中一个是 MainWindow,其中软件通过 Binding 显示 ListBox 中的数据,第二个是一个简单的 Add Data 窗口。
在主窗口中,如果我点击“添加新元素”按钮,它将显示新窗口(主窗口仍然显示在下面),如下所示:
ModifyDetails details = new ModifyDetails(ListViewPositions.SelectedItem as Positions);
details.Show();
如果我填写完表格,我会按下保存按钮。它将更新数据库,并像这样关闭窗口:
...Database updating...
this.Close();
所以问题是我想在关闭“添加新元素”窗口后刷新我的 ListBox。我可以用 MainWindow 上的按钮刷新它,所以这个过程很好,但我正在寻找一个 Closing 事件,或者让它自动化的东西。
刷新过程:
public void Refresh()
{
positions.Clear();
positions = GetProducts();
ListViewPositions.ItemsSource = positions;
ListViewPositions.Items.Refresh();
}
【问题讨论】:
-
我认为最好的方法是使用 ObservableCollection 作为 itemSource 以便每当对列表或列表中的项目进行更改时,ListView 都会自动刷新。否则,也许您可以将 MainWindow 项作为参数传递给 ModifyDetails,然后在关闭窗口时调用您的刷新方法。我不确定这是否是一个好习惯
-
PopUp.Closed呢?