动态绑定设置?

时间:2010-11-05 15:01:10

标签: wpf xaml reflection binding settings

我遇到了一个问题,我有一个带有多个设置文件的应用程序,但它们的字段完全相同。

示例:

  • Profil1.settings
  • Profil2.settings
  • Profil3.settings

我想在设置窗口中执行的操作XAML是动态更改每个配置文件的绑定源。

目前我的XAML绑定看起来像这样:

SelectedValue="{Binding Source={x:Static Local:Properties.Profil1.Default}, Path=CurrentProfil, Mode=TwoWay, UpdateSourceTrigger=Explicit}"

我的问题是如何用“Profil2”替换“Profil1”,而不是通过我的代码后面的每个控件逐个重新编译所有的Binding?是否可以在XAML绑定源中使用某些反射变量,而不仅仅是使用Profil1类型或Profil2类型更改该变量的类型?

任何人都可以帮我解决这个问题吗?

提前感谢。

1 个答案:

答案 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}" />