WPF использует результат привязки в качестве входной строки в XAML - PullRequest
0 голосов
/ 11 января 2019

Мне нужно получить доступ к некоторым строкам из моей ВМ (объекты в списке на ВМ), чтобы они могли использоваться в XAML, как если бы это были жестко закодированные строки.

Я создал свой собственный класс TranslateBinding. Строка, указанная в качестве пути, используется в качестве ключа поиска языка в классе TranslateBinding. Если указанный ключ поиска языка не существует, я бы использовал строку, введенную в FallBackValue.

Обычный вариант использования с жестко закодированным ключом и запасными значениями

<TextBlock Text="{TranslateBinding 'thelookupkey', FallbackValue='Lookup Key Not Found'}" />

Но теперь мне нужно, чтобы строка 'thelookupkey' была значением свойства. То же самое для запасного значения.

Так что я хотел бы иметь возможность сделать что-то вроде этого

<TextBlock Text="{TranslateBinding {Binding LookupKey}, FallbackValue={Binding FallBackString}}" />

Это не работает, поэтому у меня есть вопрос. Могу ли я каким-то образом получить значения из свойств LookupKey и FallBackString как чистые «строки ресурсов» в моем XAML таким образом, чтобы я мог использовать его для TranslateBinding?

Причина, по которой мне это нужно, заключается в том, что я хочу использовать TranslateBinding в шаблоне данных ComboBox, чтобы перевод выполнялся на основе индивидуальных свойств LookupKey и FallBackString каждого элемента.

1 Ответ

0 голосов
/ 17 января 2019

Я решил это, используя

<PriorityBinding>
   <LocalizationBinding NameLookupKey .../>
   <Binding Name , FallBack='Missing Name'/>
</PriorityBinding>

Это позволило мне попробовать другую привязку, если первая не удалась. Вместо этого я создал класс LocalizationBinding, который использовал значение из свойства, определенного в указанном пути, для поиска языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...