Динамическая привязка для настроек? - PullRequest
0 голосов
/ 05 ноября 2010

Я столкнулся с проблемой, у меня есть приложение с несколькими файлами настроек, но в которых поля совпадают.

Образец:

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

В моем окне настроек XAML я хочу динамически изменять источник привязки для каждого профиля.

В данный момент моя привязка XAML выглядит следующим образом:

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

Моя проблема в том, как заменить «Profil1» на «Profil2», не перераспределяя все мои привязки по одному для каждого элемента управления через мой код позади? Можно ли использовать какой-либо тип переменной отражения в источнике привязки XAML, а затем просто изменить тип этой переменной с типом Profil1 или Profil2?

Кто-нибудь может мне помочь с этим?

Спасибо заранее.

1 Ответ

1 голос
/ 05 ноября 2010

Что вы хотите сделать, это установить 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}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...