简体   繁体   English

WPF应用程序和调度程序:使UI响应的问题

[英]WPF app and dispatcher: Issue with making UI responsive

I've a C#/WPF app in which I'm using a webbrowser control. 我有一个使用Webbrowser控件的C#/ WPF应用程序。 I'm trying to set the value of DocumentPath from within my view model using Dispathcer. 我正在尝试使用Dispathcer从我的视图模型中设置DocumentPath的值。 But my UI gets becomes unresponsive until the WebBrowser control loads the document completely. 但是我的UI变得无响应,直到WebBrowser控件完全加载文档为止。 How can I get rid of this issue ? 我如何摆脱这个问题? Please advise. 请指教。

Here's my code: Xaml: 这是我的代码:Xaml:

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"      
    xmlns:viewModel="clr-namespace:MVMs.ViewModel"
>
<Window.DataContext>
        <viewModel:MyViewModel/>
    </Window.DataContext>


<WebBrowser x:Name="MyWebBrowser1" 
            myVM:WebBrowserExtensions.BindableSource="{Binding DocumentPath}"
 VerticalAlignment="Stretch" Margin="0,0,0,-11">

ViewModel: 视图模型:

public MyViewModel()
{
System.Windows.Application.Current.Dispatcher.BeginInvoke(
 DispatcherPriority.Background,
                   new Action(DocumentPath="myDocPath"));

}

Try this: 尝试这个:

private string _DocumentPath;
public string DocumentPath
{
    get { return _DocumentPath; }
    set
    {
        _DocumentPath = value;
        OnPropertyChanged("DocumentPath");
    }
}

public MyViewModel()
{
    DocumentPath = "myDocPath";
}

If you don't know how to implement OnPropertyChanged watch here . 如果您不知道如何实现OnPropertyChanged,请在此处观看。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM