我是一个混合应用 WPF + Neutronium(html、css、javascript),
当 ListBox WPF 组件中发生 SelectionChanged 事件时,csharp 会像这样调用代码隐藏:
private void searchList_SelectionChanged(object sender, SelectionChangedEventArgs e)
在此方法中,我需要向 Neutronium (WPF:HTMLViewControl) 发送一个 javascript 命令。
但是我没有发现任何人在 neutronium HTMLViewControl 组件中执行 javascript 命令。
我是怎么做到的?
最佳答案
Neutronium 哲学是使用 MVVVM 模式作为 JS 和 C# 之间的通信。
因此,对 searchList_SelectionChanged 使用react的最佳方式是更新将触发 HTML 端更改的 View 模型属性。
使用 Vue 的伪代码: C#:
private void searchList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
vm.Selected = selected;
}
虚拟机:
public class MainVm
{
private SelectedObject _Selected ;
public SelectedObject Selected
{
get { return _Selected ; }
set
{
_Selected = value;
PropertyChanged(this, new PropertyChangedEventArgs("Selected"));
}
}
//...
}
Vue 模板:
<component :element:="viewModel.Selected ">
</component >
Neutronium 将负责这里的所有通信。
如果您需要更具体的内容,您甚至可以使用 Vue.js watch在选定的元素上。
我会推荐你看一看:https://github.com/NeutroniumCore/Neutronium.SPA.Demo , https://github.com/NeutroniumCore/CodeDependencyScanner 和 https://github.com/David-Desmaisons/Music.Cover.Finder这是使用 Neutronium 的好例子。
关于javascript - 如何在 Neutronium 库中执行 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40655413/