【问题标题】:WPF Binding between Control and Style控件和样式之间的 WPF 绑定
【发布时间】:2011-04-04 11:50:54
【问题描述】:

我的 XAML 中有一个控件绑定到具有样式的属性。

<TextBox x:Name="txtCapAmount" Text="{Binding Path=CapAmount}" Style="{DynamicResource AmountTextBoxStyle}"  />

在样式中我想使用控件中的绑定,但不知道如何设置它

<Style x:Key="AmountTextBoxStyle" TargetType="{x:Type TextBox}">
    <EventSetter Event="TextBox.PreviewTextInput" Handler="PreviewTextInput_IsTheNewValueAnAcceptableAmount" />
    <EventSetter Event="CommandManager.PreviewExecuted" Handler="CommandPaste_IsTheNewValueAnAcceptableAmount" />
    <Setter Property="MinWidth" Value="100" />
    <Setter Property="Text" Value="{Binding Path=?????, TargetNullValue={x:Static System:String.Empty}, StringFormat={}{0:C0}}" />
</Style>

我想在整个应用程序中为多个文本框重复使用这种样式,但需要将每个单独的文本框绑定到不同的属性。在样式中,是否可以在保留控件上设置的路径的同时更改“文本”属性?

【问题讨论】:

  • 你尝试过 Binding Path=Text 吗?

标签: wpf binding styles


【解决方案1】:

您在这里错误地使用了样式。应该使用类似于 Web 上的 CSS 的样式,以改变类似控件的多个实例的视觉外观。

为什么你需要样式中的文本?您已经在控件实例级别绑定文本。把它放在风格中不会给你带来任何好处,而且正如你所发现的那样是行不通的

【讨论】:

  • 关键是不要在整个应用程序中复制和粘贴 TargetNullValue 和 StringFormat 绑定值。我想将它们设置在资源字典中(仅限一个地方)。我当然可以在控件上设置 Text 属性,但我真的在寻找另一个答案。
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 2013-12-10
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多