[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
Re: [WP7] Проблема с биндингом
От: Константин Черногория  
Дата: 18.09.12 20:10
Оценка:
Здравствуйте, AndrewDenison, Вы писали:

AD>Все было хорошо до момента пока в целях локализации приложения не захотелось прибиндить эти свойства(OffText, OnText) с помощью конструкции вида


Если вам нужен data binding — вам нужны dependency properties вместо обычных C# properties.

Копипаста из моей обзорной статьи про WP7:
Here’s more information “why”, and here’s more information “how”.
Re[2]: [WP7] Проблема с биндингом
От: AndrewDenison  
Дата: 19.09.12 16:14
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, AndrewDenison, Вы писали:


AD>>Все было хорошо до момента пока в целях локализации приложения не захотелось прибиндить эти свойства(OffText, OnText) с помощью конструкции вида


К>Если вам нужен data binding — вам нужны dependency properties вместо обычных C# properties.


К>Копипаста из моей обзорной статьи про WP7:

К>Here’s more information “why”, and here’s more information “how”.

Спасибо Константин!
все получилось :)
Re[3]: [WP7] Проблема с биндингом
От: Константин Черногория  
Дата: 19.09.12 20:18
Оценка:
Здравствуйте, AndrewDenison, Вы писали:

К>>Если вам нужен data binding — вам нужны dependency properties вместо обычных C# properties.


К>>Копипаста из моей обзорной статьи про WP7:

К>>Here’s more information “why”, and here’s more information “how”.

AD>Спасибо Константин!

Не за что.

AD>все получилось

Ура!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.