XAML и локальная переменная / авто свойство - PullRequest
0 голосов
/ 21 сентября 2010

Я пытаюсь установить локальное свойство через XAML и триггер.
Идея состоит в том, чтобы «воспроизвести» поведение, которое существует на большинстве страниц настроек, с помощью кнопки «Применить» внизу.
Как только пользователь изменит один элемент управления / настройки на странице, я хочу установить для локальной переменной («FilterModified») значение «true».
Я попробовал это, но почему-то не могу заставить его скомпилировать:

<ToggleButton.Triggers>
    <Trigger Property="ToggleButton.IsChecked">
        <Setter Property="myUserControl.FilterModified" Value="True"/>
    </Trigger>
</ToggleButton.Triggers>

В коде FilterModified объявляется так:

public partial class myUserControl: UserControl
{
    public static Boolean FilterModified { get; set; }

Может ли кто-нибудь помочь мне?
Спасибо заранее.
Фред

1 Ответ

1 голос
/ 21 сентября 2010

Было бы полезно, если бы вы опубликовали полученную ошибку компиляции, но я подозреваю, что вам нужно сделать FilterModified свойством зависимости, а не обычным.Самый простой способ - набрать propdp в Visual Studio, нажать клавишу Tab и установить для выделенных полей правильные значения:

public bool FilterModified
{
    get { return (bool)GetValue(FilterModifiedProperty); }
    set { SetValue(FilterModifiedProperty, value); }
}

// Using a DependencyProperty as the backing store for FilterModified.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty FilterModifiedProperty =
        DependencyProperty.Register("FilterModified", typeof(bool), typeof(ownerclass), new UIPropertyMetadata(false));

С этим, я думаю, будет работать опубликованный вами XAML.

Редактировать: однако, конечно, я бы посоветовал заглянуть в MVVM (Model-View-ViewModel), чтобы делать подобные вещи, и оставить только привязки, которые делают тяжелую работу;это означало бы перемещение FilterModified в ViewModel и обработку его только оттуда, а не из выделенного кода, привязанного к этому точному элементу управления.

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