[WP7] Проблема с биндингом
От: AndrewDenison  
Дата: 17.09.12 14:46
Оценка:
Вообщем суть проблемы такова:

Имеется XAML страница
в которой используется конвертер для отображения текста Enabled/Disabled в зависимости от значения булевой переменной.
<phone:PhoneApplicationPage.Resources>       
    <MyApp:OffOnConverter x:Key="OffOnConverter"
        OffText="Disabled"
        OnText="Enabled" />
</phone:PhoneApplicationPage.Resources>       

.............

<toolkit:ToggleSwitch x:Name="ToggleSwitch"
    Content="{Binding ElementName=ToggleSwitch, Path=IsChecked, Converter={StaticResource OffOnConverter} }"
/>

Т.е. значение поля ToggleSwitch.Content само изменяется в зависимости от того включен или выключен данный выключатель.

Вот код самого конвертера
public class OffOnConverter : IValueConverter
{
    public string OffText { get; set; }
    public string OnText { get; set; }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)        
    {
        return (bool?)value == true ? OnText : OffText;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}


Все было хорошо до момента пока в целях локализации приложения не захотелось прибиндить эти свойства(OffText, OnText) с помощью конструкции вида
<phone:PhoneApplicationPage.Resources>       
    <MyApp:OffOnConverter x:Key="OffOnConverter"
        OffText="{Binding LocalizedText_Disabled}"
        OnText="{Binding LocalizedText_Enabled}" />
</phone:PhoneApplicationPage.Resources>


При загрузке страницы вываливает эксепшн в стиле XamlParsingException, что судя по всему говорит о недопустимости такого хода...

В общем, дайте пожалуйста пинок в нужном направлении, куда копать? и как правильно это дело реализовать?
Чтобы свойства объекта вели себя так-же как и свойство объекта TextBlock.Text например.
с# wp7 binding xaml ivalueconverter
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.