WPF样式中的DataTrigger绑定
我在WPF中有以下Button和Style,我需要在DataTrigger部分中概括Binding,因为我在同一个Window中有近10个相似的按钮,每个按钮应绑定到不同的属性(SelectedPositions,SelectedAgencies,…. )。 有可能实施吗?
你能给我一个你解释的例子吗?
当然,
1 – 使用标签
在您的Style
DataTrigger
为:
...
至于用法:
2 – 使用附属物 :
“local:”是指应用程序的xaml名称空间别名,或者如果使用不同的名称空间,则声明MyCustomPropertyCollection
的名称空间。
后台代码:
public class MyCustomPropertyCollection { public static readonly DependencyProperty SomeStringProperty = DependencyProperty.RegisterAttached( "SomeString", typeof(string), typeof(MyCustomPropertyCollection), new FrameworkPropertyMetadata(string.Empty)); public static void SetSomeString(UIElement element, string value) { element.SetValue(SomeStringProperty, value); } public static string GetSomeString(UIElement element) { return (string)element.GetValue(SomeStringProperty); } }
Style.DataTrigger
...
用法:
3 – 正常依赖属性
自定义Button
类:
public class MyButton : Button { public static readonly DependencyProperty SomeStringProperty = DependencyProperty.Register( "SomeString", typeof(string), typeof(MyButton), new FrameworkPropertyMetadata(string.Empty)); public string SomeString { get { return (string)GetValue(SomeStringProperty); } set { SetValue(SomeStringProperty, value); } } }
xaml中的样式不仅需要更新DataTrigger
还需要Style
定义。
切换
至
Style.DataTrigger
...
用法:
Tag
方法不受欢迎。 “附加属性”更容易实现,但并不像依赖性指标那样明确,因为具有普通DP的自定义类和AP也会过度使用。 选择你喜欢的东西吧。