2016-11-17 54 views
1

我的混合應用WPF + 0號元素(HTML,CSS,JavaScript的),如何在Neutronium庫中執行JavaScript?

當在列表框WPF組件中發生SelectionChanged事件中,呼叫CSHARP代碼隱藏等:

private void searchList_SelectionChanged(object sender, SelectionChangedEventArgs e) 

在此方法中我需要發送一個JavaScript命令給Neutronium(WPF:HTMLViewControl)。

但我沒有在neutronium HTMLViewControl組件中找到任何javascript執行命令。

我是怎麼做到的?

0號元素:https://github.com/David-Desmaisons/Neutronium

回答

3

0號元素理念是使用MVVVM圖案作爲JS和C#之間的通信。

因此,對searchList_SelectionChanged作出反應的最佳方式是更新將觸發HTML端更改的視圖模型屬性。 C#:使用Vue的

僞代碼

private void searchList_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    vm.Selected = selected; 
} 

VM:

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 > 

0號元素將在這裏處理所有的通信。

如果您需要更具體的內容,您甚至可以在所選元素上使用Vue.js watch

我會建議更換你看看:https://github.com/NeutroniumCore/Neutronium.SPA.Demohttps://github.com/NeutroniumCore/CodeDependencyScannerhttps://github.com/David-Desmaisons/Music.Cover.Finder是0號元素使用的很好的例子。

+1

示例codegravity似乎不再存在,可能是https://github.com/NeutroniumCore/NeutroniumDemo now – msanjay