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

时间:2017-02-01 02:02:01

标签: c# wpf multithreading

我有一个C#/ WPF应用,我正在使用web浏览器控件。 我正在尝试使用Dispathcer在我的视图模型中设置DocumentPath的值。 但是在WebBrowser控件完全加载文档之前,我的UI变得没有响应。 我该怎样摆脱这个问题? 请指教。

这是我的代码: 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">

视图模型:

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

}

1 个答案:

答案 0 :(得分:0)

试试这个:

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

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

如果您不知道如何实施OnPropertyChanged,请观看here