Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Указатель на объект, созданный в xaml'е


Автор: Djazz 7.11.2008, 10:47
Есть класс MyClass, в котором определено свойство MyTitle, возращающее значение строковой перемнной.
Пишу в ресурсах окна:

Код

<src:MyClass x:Key="MyClassBinding"/>


Хочу связать MyTitle с TextBlock, для этого пишу:

Код

<TextBlock Text="Binding Source={StaticResource MyClassBinding} Path=MyTitle}"/>


Таким образом при инициализации ресурсов создастся экземпляр класса MyClass и будет определено значение MyTitle,
с которым свяжется TextBlock.

Теперь вопрос. Могу ли я както уже в коде на C# найти указатель на этот созданный экземпляр, чтоб не создавать новый?

Автор: Partizan 7.11.2008, 12:17
Djazz, в ресурсах окна конечно же.

Автор: Djazz 7.11.2008, 14:26
хорошо, тогда что именно надо написать в теге <src:MyClass x:Key="MyClassBinding"/>, пробовал x:Name не помогает

Автор: Idsa 7.11.2008, 14:32
Partizan, не та ли это проблема, с которой ты боролся?

Автор: Partizan 7.11.2008, 14:50
Idsa, ненененене...

тут человеку надо просто достать объект из ресурсов окна...
у меня с биндингами траблы были...


Djazz, в коде C# в классе окна пишете:

Код

MyClass createdInstance = this.Resources["MyClassBinding"] as MyClass;

Автор: Djazz 7.11.2008, 14:53
спасибо

Автор: Idsa 7.11.2008, 14:59
Partizan, а ты посмотри на этот баиндинг:
Код

<TextBlock Text="Binding Source={StaticResource MyClassBinding} Path=MyTitle}"/>

Разве не оно?

Автор: Partizan 7.11.2008, 15:21
Idsa, не-не

у меня биндинг какой был:

1) статический ресурс -> свойство окна 

(тут была грабля с тем, что Resources не находятся в LogicalTree...в VisualTree тоже соответственно не находятся...в результате объект, который лежит в ресурсах ни к чему снаружи них привязаться не может)

2) свойство элемента в контенте окна -> статический ресурс

в данном случае у человека просто создаётся в ресурсах объект некоего класса, у которого есть свойство MyTytle, возвращающее нужное значение...так что тут с биндингом(читается, конечно "[baindin']", но привык называть это биндингом  smile ) никаких проблем нет.

Да и к тому же человек вопрос тоже чётко поставил smile

Цитата

Теперь вопрос. Могу ли я както уже в коде на C# найти указатель на этот созданный экземпляр, чтоб не создавать новый? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)