привязка к составному пути

#wpf #xaml #binding

#wpf #xaml #привязка

Вопрос:

Я создаю ресурс в window xaml. Этот ресурс является контроллером, подобным этому

 <Window.Resources>
  <ext:Controller x:Key="Controller"/>
</Window.Resource>
  

В моем xaml есть элементы управления, которые я хочу привязать, так сказать, к «составным элементам» в контроллере.
Например, если бы у меня была строка в контроллере, и я хочу привязать к этой длине строки

 <TextBlock Text="{Binding Source={StaticResource Controller},Path=myString.Length}"/>
  

или что-то в этом роде.

Это кажется странным способом сделать это, но я хочу сохранить все эти элементы в контроллере, а не делать их отдельными ресурсами, чтобы у них был доступ к определенным вещам в контроллере.

Реальная суть проблемы заключается в том, что у меня есть пара окон, и я хочу, чтобы они совместно использовали общий ресурс (экземпляр контроллера). Итак, я поместил статический идентификатор контроллера в контроллер. я на самом деле хочу привязать, как

 <TextBlock Text="{Binding Source={StaticResource Controller},Path=StaticInstance.memberProperty/>
  

Возможно ли привязать к члену члена или какой подход я должен использовать вместо того, чтобы использовать, так сказать, «составной путь в привязке»?

Спасибо, ребята! Ценю помощь

Ответ №1:

StaticInstance не является свойством вашего ресурса (который является экземпляром), поскольку он статичен. Если вы хотите привязаться к статическим элементам, вы можете использовать x:Static расширение markup, обратите внимание, что синтаксис довольно специфичен.

Привязка, вероятно, будет выглядеть следующим образом:

 {Binding Source={x:Static myns:Controller.StaticInstance}, Path=memberProperty}
  

Комментарии:

1. Да, это именно то, что я хотел x: Static — вот чего мне не хватало. Спасибо!