Wpf 设置的动态绑定?
我面临一个问题,我有一个应用程序,其中有几个设置的文件,但有完全相同的字段 样本:Wpf 设置的动态绑定?,wpf,xaml,reflection,binding,settings,Wpf,Xaml,Reflection,Binding,Settings,我面临一个问题,我有一个应用程序,其中有几个设置的文件,但有完全相同的字段 样本: Profil1.1设置 Profil2.0设置 Profil3.0设置 我想在我的设置窗口XAML中做的是动态更改每个概要文件的绑定源 目前,我的XAML绑定如下所示: SelectedValue="{Binding Source={x:Static Local:Properties.Profil1.Default}, Path=CurrentProfil, Mode=TwoWay, UpdateSource
- Profil1.1设置
- Profil2.0设置
- Profil3.0设置
SelectedValue="{Binding Source={x:Static Local:Properties.Profil1.Default}, Path=CurrentProfil, Mode=TwoWay, UpdateSourceTrigger=Explicit}"
我的问题是如何用“Profil2”替换“Profil1”,而不通过代码隐藏为每个控件逐个重新创建所有绑定?是否可以在XAML绑定源中使用某种反射变量,而不是简单地使用Profil1类型或Profil2类型更改该变量的类型
有人能帮我吗
提前感谢。您要做的是将设置窗口的DataContext设置为适当的配置文件。您可以按照自己的意愿进行操作,但这样做后,所有绑定都将指向该对象。要使绑定像现在一样工作,请执行以下操作:
<Window x:Class="MyNamespace.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Local="clr-namespace:MyNamespace"
DataContext="{Binding Source={x:Static Local:Properties.Profil1.Default}}">
...
<ComboBox SelectedValue="{Binding Path=CurrentProfil, Mode=TwoWay, UpdateSourceTrigger=Explicit}" />
...
我得到了一些线索,通过使用类型“dynamic”,我可以为动态变量分配不同的profile类型,并从中检索设置。这在代码中是可行的,但我不知道如何使它与XAML绑定一起工作。如果我试图在绑定源代码中绑定一个动态类型变量,编译器在构建时会抛出错误。我要到星期一才开始工作,但是的,这看起来是解决方案。我所要做的就是通过代码将窗口的DataContext更改为正确的配置文件,这样就完成了。这比使用动态类型对象和绑定容易得多。非常感谢。