WebView2交互视图模型(WPF/C)——>;限制域
亲爱的网上大学 我想在我的应用程序中使用WebView2,但我想在viewmodel文件中使用RestrictDomain,该文件通常在view.xaml.cs文件中定义。这是否可能以某种方式将其绑定成某种形状或形式?代码看起来也不像: Xaml: viewmodel中的webView2Name当然没有被重新定义,因此这只是另一个问题之上的另一个问题。(weblink设置在其他地方) 如果有人能找到或知道任何解决办法,那将是非常受欢迎的 格雷廷斯,WebView2交互视图模型(WPF/C)——>;限制域,wpf,xaml,binding,viewmodel,webview2,Wpf,Xaml,Binding,Viewmodel,Webview2,亲爱的网上大学 我想在我的应用程序中使用WebView2,但我想在viewmodel文件中使用RestrictDomain,该文件通常在view.xaml.cs文件中定义。这是否可能以某种方式将其绑定成某种形状或形式?代码看起来也不像: Xaml: viewmodel中的webView2Name当然没有被重新定义,因此这只是另一个问题之上的另一个问题。(weblink设置在其他地方) 如果有人能找到或知道任何解决办法,那将是非常受欢迎的 格雷廷斯, 是me Jessi是的,您可以将WebView
是me Jessi是的,您可以将WebView2.Source绑定到您的ViewModel,并且应该可以将导航事件绑定到您的ViewModel。 源应绑定到Uri类型(而不是字符串) 如果要将视图中的属性/事件绑定到视图模型,则必须在视图/xaml中定义datacontext;类似这样的情况(假设您的命名空间为“YourNameSpace”,而viewmodel类为“viewmodel”): 您在XAML中的绑定现在应该是:
Source="{Binding WebUri}"
最后一件事是将NavigationStarting事件连接到视图模型。我以前也做过,但很难做到,最后我使用了交互触发器。这是可行的,但也许有更好的解决办法。我用于webview事件的交互触发器是“NavigationCompleted”;因此,也许您也可以使用它,并将NavigationCompleted替换为NavigationStarting
<wv2:WebView2 Name="webView" Grid.Column="1" Source="{Binding WebUri}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="NavigationCompleted">
<cmd:EventToCommand Command="{Binding Mode=OneWay, Path=WebViewNavigationCompleted}"
PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</wv2:WebView2>
我希望这能进一步帮助你。祝您好运。是的,您可以将WebView2.Source绑定到您的ViewModel,并且应该可以将导航事件绑定到您的ViewModel。 源应绑定到Uri类型(而不是字符串) 如果要将视图中的属性/事件绑定到视图模型,则必须在视图/xaml中定义datacontext;类似这样的情况(假设您的命名空间为“YourNameSpace”,而viewmodel类为“viewmodel”): 您在XAML中的绑定现在应该是:
Source="{Binding WebUri}"
最后一件事是将NavigationStarting事件连接到视图模型。我以前也做过,但很难做到,最后我使用了交互触发器。这是可行的,但也许有更好的解决办法。我用于webview事件的交互触发器是“NavigationCompleted”;因此,也许您也可以使用它,并将NavigationCompleted替换为NavigationStarting
<wv2:WebView2 Name="webView" Grid.Column="1" Source="{Binding WebUri}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="NavigationCompleted">
<cmd:EventToCommand Command="{Binding Mode=OneWay, Path=WebViewNavigationCompleted}"
PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</wv2:WebView2>
我希望这能进一步帮助你。祝你好运
Source="{Binding WebUri}"
<wv2:WebView2 Name="webView" Grid.Column="1" Source="{Binding WebUri}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="NavigationCompleted">
<cmd:EventToCommand Command="{Binding Mode=OneWay, Path=WebViewNavigationCompleted}"
PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</wv2:WebView2>
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"