Привязка свойства пользовательского интерфейса silverlight к источнику - PullRequest
0 голосов
/ 05 февраля 2010

У меня есть флажок, который мне нужно привязать к bool в источнике, а также отключить или включить контейнер.

Мой источник для привязки выглядит следующим образом, но он не работает:

private bool isMapEditOn = false;

OnLoadFunction()
{
    //Bindings
    Binding mapEditBind = new Binding("IsChecked") { Source = isMapEditOn, Mode = BindingMode.TwoWay };

    //Bind to check or uncheck the mapEdit Checkbox
    ChckEditMap.SetBinding(ToggleButton.IsCheckedProperty, mapEditBind);
    //Bind to disable children (point and area buttons).
    EditBtnContainer.SetBinding(IsEnabledProperty, mapEditBind);
}

Когда я проверяю это, устанавливая и снимая флажок, он не изменяет isMapEditOn.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2010

Самый простой способ сделать это - обернуть isMapEditOn в свойстве. Если вы хотите изменить уведомление от источника, вам нужно реализовать INotifyPropertyChanged (здесь не показано. См. Страницу для получения информации о реализации этого интерфейса):

private bool _isMapEditOn = false;

public bool IsMapEditOn
{
    get
    {
        return _isMapEditOn;
    }
    set
    {
        _isMapEditOn = value;
    }
}

OnLoadFunction()
{
    //Bindings
    Binding mapEditBind = new Binding("IsMapEditOn") { Source = this, Mode = BindingMode.TwoWay };

    //Bind to check or uncheck the mapEdit Checkbox
    ChckEditMap.SetBinding(ToggleButton.IsCheckedProperty, mapEditBind);
    //Bind to disable children (point and area buttons).
    EditBtnContainer.SetBinding(IsEnabledProperty, mapEditBind);
}
0 голосов
/ 05 февраля 2010

Попробуйте использовать тип bool? вместо bool. Свойство IsChecked определяется как:

public bool? IsChecked { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...