XAML игнорирует измененное значение привязки - PullRequest
0 голосов
/ 28 октября 2018

Я нашел миллионы ответов на свои вопросы, но ничего не помогло, может быть, я не вижу простого решения.

В моем приложении MVVM- (Light) я хочу привязать свойство видимости к ViewModel:

<StackPanel Orientation="Horizontal" Visibility="{Binding AddMenuVisibility, Converter={StaticResource BooleanToVisibilityConverter}}">
...
</StackPanel>

Моя ViewModel начинается с:

public class OrderMainViewModel : BaseViewModel
{
    public OrderMainViewModel()
    {
        if (CurrentUser.Default.UserLevel < 5)
        {
            AddMenuVisibility = false;

        }
        else
        {
            AddMenuVisibility = true;
        }
}

Свойство:

        public const string AddMenuVisibilityPropertyName = "AddMenuVisibility";

    private bool _addMenuVisibility = true;

    /// <summary>
    /// Sets and gets the AddMenuVisibility property.
    /// Changes to that property's value raise the PropertyChanged event. 
    /// </summary>
    public bool AddMenuVisibility
    {
        get
        {
            return _addMenuVisibility;
        }

        set
        {
            if (_addMenuVisibility == value)
            {
                return;
            }

            _addMenuVisibility = value;
            RaisePropertyChanged(AddMenuVisibilityPropertyName);
        }
    }

Значение по умолчанию для CurrenUser.Default.UserLevel равно 1, поэтому оно достигает значения falseЗначение в первую очередь.Позже он достигает истинного значения, но «реальный» статус видимости в XAML не изменяется.Если я изменю первое объявление на true, оно останется видимым.

...