IsEnabled привязка к логическому - PullRequest
1 голос
/ 19 марта 2012

У меня есть список простого диалогового окна, которое содержит несколько флажков, я хотел, чтобы кнопка Ok была отключена, если пользователь не изменил настройку. На мой взгляд, у меня есть свойство OkEnabled, к которому я привязывал свойство isEnabled кнопки, если флажок меняет свое значение, он устанавливает значение OkEnabled в true, но по какой-то причине это не активирует кнопку.

public bool OkEnabled
{
    get
    {
        return m_okEnabled;
    }
    set
    {
        m_okEnabled = value;
        OnPropertyChanged("OkEnabled");
    }
}
<Button Content="OK" Style="{StaticResource MyButton}" Height="23" 
        HorizontalAlignment="Left" Margin="20" Name="m_okbutton" 
        VerticalAlignment="Top" Width="75"
        Click="okClick" IsEnabled="{Binding Path=OkEnabled}"/>

По какой-то причине кнопка Ok не изменит состояние, когда свойство OkEnabled изменит состояние. Если я связываю свойство IsEnabled с одним из флажков, я вижу состояние изменения кнопки при изменении флажка.

Ответы [ 2 ]

5 голосов
/ 19 марта 2012

На мой взгляд, у меня есть свойство OkEnabled

По умолчанию привязки относятся к DataContext, а не к представлению.Вы установили представление как его собственный DataContext?

1 голос
/ 19 марта 2012

Как вы сказали, свойство OkEnabled находится в поле зрения. что не правильно, если вы используете MVVM. Он должен быть в модели и назначить объект модели в текстовом виде.

...