我正在尝试通过 SOCKS5 代理连接到 Web 服务。目前,我的app.config如下:
<system.net>
<defaultProxy enabled="true" >
<proxy proxyaddress="http://xxx.xxx.xxx.xxx:yyyy" bypassonlocal="True" />
</defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)
这对于 http 代理来说效果很好,但它只是不能连接到 SOCKS5 代理。我在谷歌上广泛搜索答案,但找不到解决这个问题的人,尽管我已经发现这个问题好几次了。有人知道我该怎么做吗?
我有一个应用程序,我在GroupBox中显示UserControls.为了显示控件,我绑定到主窗体的ViewModel中的属性,该属性返回要显示的ViewModel.我已经设置了DataTemplates,以便表单自动知道用于显示每个ViewModel的UserControl/View.
当我显示不同的UserControl时,我保持前一个控件的ViewModel处于活动状态,但WPF会自动丢弃视图.
我遇到的问题是,当视图关闭时,任何对ViewModel中属性的双向绑定都会立即设置为null,因此当我再次显示ViewModel时,所有值都只是在UI.
我认为这是因为作为View关闭的一部分,它会处理并清除它包含的控件中的任何值,并且由于绑定到位,它们也会向下传播到ViewModel.
DataTemplates在我的资源中
<DataTemplate DataType="{x:Type vm:HomeViewModel}">
<vw:HomeView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:SettingsViewModel}">
<vw:SettingsView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:JobListViewModel}">
<vw:JobListView />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
用于显示用户控件的代码
<GroupBox>
<ContentControl Content="{Binding Path=RightPanel}" />
</GroupBox>
Run Code Online (Sandbox Code Playgroud)
我在其中一个视图中绑定的控件示例:
<ComboBox Name="SupervisorDropDown" ItemsSource="{Binding Path=Supervisors}" DisplayMemberPath="sgSupervisor"
SelectedValuePath="idSupervisor" SelectedValue="{Binding Path=SelectedSupervisorID}" />
Run Code Online (Sandbox Code Playgroud)
以及相关的ViewModel属性:
public ObservableCollection<SupervisorsEntity> Supervisors
{
get
{
return supervisors;
}
}
public int? SelectedSupervisorID
{
get
{
return selectedSupervisorID;
}
set
{
selectedSupervisorID = value;
this.OnPropertyChanged("SelectedSupervisorID");
}
}
Run Code Online (Sandbox Code Playgroud)
有关如何停止我的视图的任何想法使我的ViewModel中的值无效?我想也许我需要在关闭之前将View的DataContext设置为null,但我不确定如何以当前绑定的方式来解决这个问题.