что я делаю не так?
Вы делаете необоснованные предположения о том, как что-то должно работать, о чем вы не особо понимаете.Здесь вы имеете дело с двумя принципиально разными языками и просто потому, что вы хотите, чтобы WPF интерпретировал Window.Test
, поскольку ссылка на какое-то конкретное окно, которое вы имели в виду, не делает его таким.
XAMLосновывается на строках, по большей части строки преобразуются в примитивные типы, такие как int и double, например, когда вы устанавливаете высоту элемента управления, вы передаете string
свойству типа double
.Анализатор XAML знает через отражение, что свойство имеет тип double
и пытается преобразовать string
(используя конвертер значений по умолчанию , если не указано иное).Как вы думаете, что произойдет, если свойство имеет тип object
?Что делать парсеру?Ну, он не собирается ничего делать, поскольку string
уже уже object
.
Угадайте, какой тип Binding.Source
имеет и какой источникобъект вашей привязки будет при написании Window.Test
...