我遇到了一个问题,我有一个带有多个设置文件的应用程序,但它们的字段完全相同。
示例:
我想在设置窗口中执行的操作XAML是动态更改每个配置文件的绑定源。
目前我的XAML绑定看起来像这样:
SelectedValue="{Binding Source={x:Static Local:Properties.Profil1.Default}, Path=CurrentProfil, Mode=TwoWay, UpdateSourceTrigger=Explicit}"
我的问题是如何用“Profil2”替换“Profil1”,而不是通过我的代码后面的每个控件逐个重新编译所有的Binding?是否可以在XAML绑定源中使用某些反射变量,而不仅仅是使用Profil1类型或Profil2类型更改该变量的类型?
任何人都可以帮我解决这个问题吗?
提前感谢。
答案 0 :(得分:1)
您要做的是将设置窗口的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}" />