我目前正在开发一个使用MVVM框架的WPF应用程序。我有这个功能:从框架中的页面更新主窗口
我有一个主窗口有一个组合框和框架(我把我的网页)和视图模型。该框架中的一个页面是用户可以添加数据的位置,这些数据用于填充主窗口中的组合框。我的问题是如何从该页面添加数据后自动更新组合框中的项目。顺便说一句,这个页面也有不同的视图模型。
谢谢。
我目前正在开发一个使用MVVM框架的WPF应用程序。我有这个功能:从框架中的页面更新主窗口
我有一个主窗口有一个组合框和框架(我把我的网页)和视图模型。该框架中的一个页面是用户可以添加数据的位置,这些数据用于填充主窗口中的组合框。我的问题是如何从该页面添加数据后自动更新组合框中的项目。顺便说一句,这个页面也有不同的视图模型。
谢谢。
您可以通过window.top从iframe访问父窗口。你必须在你的页面中写入你在iFrame中加载的代码。
window.top.document.getElementById("combobox_element_id").value='Your New Value';
好运
OP问题是关于WPF,而不是关于HTML/JS网页 – Uwy
这是桌面应用程序@Rahul先生。这是行不通的。 –
,你可以在页面视图模型已更改的数据建立的事件。然后在窗口视图模型中订阅这些事件并相应地更新组合框项目。
你能否提供一些关于我应该如何从事件开始的细节?我对使用它们并不熟悉。 @ grek40 –
@HunterWinchester你的问题不包含任何代码,所以我不会发明任何代码。你可以阅读如何在那里创建一个非常简单的事件,例如:https://stackoverflow.com/a/9885515/5265292 – grek40
您可以将ComboBox(ObservableCollection)的Source DataContext传递给页面ViewModel,以便您可以简单地从页面视图模型修改集合。
当你的数据库集合中添加元素时,你的问题没有添加到你的'ComboBox'中?如果是这样你尝试使用'ObservableCollection'? – Uwy
是的。我在我的主窗口视图模型中使用了ObservableCollection。数据添加在页面视图模型中,我似乎无法找到更新主要虚拟机的方法。 –
你的问题是如何完成你的'frame'页面的虚拟机与主窗口的虚拟机之间的连接?例如。 'MainWindowVM.AddToComboBox(dataFromPageVM)'? – Blacktempel