Подумайте о проблеме в вашем обновленном свойстве: у этого свойства нет вспомогательного поля, его получатель возвращает результат сравнения другого свойства с UserPermissions.FullAccess
. Поэтому он никогда не может быть установлен .
На что следует обратить внимание, когда пользовательский интерфейс должен быть уведомлен об изменении значения, возвращаемого HasPermissions
? Хорошо, когда может изменить это значение? Когда значение this.UserPermissions
меняется, верно?
Предполагая, что this.UserPermissions
само является свойством с установщиком, его установщик является местом для вызова RaisePropertyChanged("HasPermissions")
. Это скажет пользовательскому интерфейсу, что, даже если он не связывается с UserPermissions
напрямую, свойство, с которым он связывает , должно быть переоценено.
Обновление: Что касается вашего комментария, IsChecked
действительно является свойством CheckBox, к которому следует привязать HasPermissions
, если вы хотите, чтобы в состоянии флажка было указано, что у пользователя есть разрешение.
Обновление 2-го: Звучит так, как будто вы хотите получить доступ к свойству DataContext окна из визуального дочернего элемента (ListBox). Для этого вы можете использовать привязку RelativeSource, например:
<CheckBox Margin="0"
HorizontalAlignment="Center"
IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.HasPermission}"/>
Эта несколько неуклюжая нотация найдет ближайший родительский элемент к CheckBox в визуальном дереве типа Window и свяжется со своим свойством DataContext, чтобы найти HasPermission.