Wpf XAML和局部变量/自动属性

Wpf XAML和局部变量/自动属性,wpf,xaml,variables,triggers,local,Wpf,Xaml,Variables,Triggers,Local,我尝试通过XAML和触发器设置本地属性。 其想法是通过底部的“应用”按钮“重现”大多数设置页面中存在的行为。 一旦用户修改了页面中的一个控件/设置,我想将一个局部变量(“FilterModified”)设置为“true”。 我尝试过这个,但不知怎么的,我无法编译它: <ToggleButton.Triggers> <Trigger Property="ToggleButton.IsChecked"> <Setter Property="myU

我尝试通过XAML和触发器设置本地属性。
其想法是通过底部的“应用”按钮“重现”大多数设置页面中存在的行为。
一旦用户修改了页面中的一个控件/设置,我想将一个局部变量(“FilterModified”)设置为“true”。
我尝试过这个,但不知怎么的,我无法编译它:

<ToggleButton.Triggers>
    <Trigger Property="ToggleButton.IsChecked">
        <Setter Property="myUserControl.FilterModified" Value="True"/>
    </Trigger>
</ToggleButton.Triggers>
谁能帮帮我吗?
提前支付Thx。

Fred

如果您发布了所得到的编译错误,这会有所帮助,但我怀疑您需要将FilterModified设置为依赖项属性,而不是常规属性。最简单的方法是在Visual Studio中键入
propdp
,按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)来做这样的事情,只留下绑定来完成繁重的工作;这意味着将修改后的过滤器移动到ViewModel中,并仅从那里处理它,而不是从与该确切控件关联的代码中处理它。

是否如此“复杂”?我所需要的真是微不足道。我可以实现“Check”和“Uncheck”事件,但我确信,使用XAML应该可以实现。我将“Setter”行更改为“”。现在它可以编译了,但设计者抱怨“错误5值'True'不能分配给属性'Value'。对象引用没有设置为对象的实例。”我已经实现了您的答案。现在它可以编译了,但设计器说:Error 5 Triggers集合成员必须是EventTrigger类型。不知道怎么了!对实际上,在控件中可以内联放置的触发器有一个限制:只有事件触发器(EventTrigger);所有其他触发器只能放置在样式中。因此,另一种方法是为控件定义一个默认样式(无论如何都建议使用),并将触发器置于该样式中。我现在没有时间给你看一个示例,也许等我回家的时候。所以,我以一种风格实现了它。一切都在编译,设计师再次工作,我启动了应用程序。但是,即使我选中/取消选中切换按钮,属性FilterModified仍保持为“False”:-(
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));