x: ссылка "" не является допустимым значением для свойства "IsVisible" - PullRequest
2 голосов
/ 11 июня 2019

Я относительно новичок в WPF и мне очень нравится возможность использовать логику GUI в разметке.В настоящее время у меня есть элемент управления, который я хочу видеть только в том случае, если виден другой элемент управления.

<AttachedControl IsVisible="{x:Reference Name=mainControl}"/>
<MasterControl Name="mainControl" IsVisible="True">
...
</MasterControl>

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

Ошибка "" не является допустимым значением для свойства "IsVisible".ProjectX MyUserControl.xaml

Он также успешно компилируется, и я могу запустить приложение.Так может кто-нибудь сказать мне, где проблема или что я делаю / неправильно понимаю?

1 Ответ

1 голос
/ 11 июня 2019

Расширение разметки x:Reference относится к элементу x:Name, но вы не можете связать свойство IsVisible с элементом управления с помощью самого x:Name mainControl. Вы должны связать его с логическим свойством.

Это должно работать при условии, что mainControl имеет свойство IsVisible, т.е. x:Reference является источником привязки, а IsVisible является путем:

<AttachedControl IsVisible="{Binding IsVisible, Source={x:Reference Name=mainControl}}"/>

Вы также можете привязать к другому элементу, установив свойство ElementName привязки:

<AttachedControl IsVisible="{Binding IsVisible, ElementName=mainControl}"/>

В чем разница между x: Reference и ElementName?

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