【问题标题】:WPF Style to automatically bind to base class propertyWPF Style 自动绑定到基类属性
【发布时间】:2021-07-29 08:07:25
【问题描述】:

晚上好。请提出 WFP 约束性问题。

假设我有以下三个类:

public class Field
{
   public string Data {get; set; }
   public string TooltipText {get; set; }

   public Field(string data, string tttext)
   {
      Data = data;
      TooltipText = tttext;
   }
}

public class FName : Field
{
   public FName()
      : base("","Enter first name")
   {
   }
}

public class Person
{
   public FName FirstName {get; set; }
}

在 XAML 中,假设我在代码中将数据上下文设置为 Person,我可以通过以下方式绑定 TextBox 的文本和工具提示

<TextBox Text="{Binding FirstName.Data, Mode=TwoWay}" Tooltip={Binding FirstName.TooltipText}" />

有没有办法通过在样式中引用基类的属性来通用地做到这一点(如果这是第一个词),这样我就不需要为每个 TextBox 声明它?例如,作为模型:

<TextBox Binding="FirstName" Style="{StaticResource TextBoxStyle}">

风格有点像

<Style x:Key="TextBoxStyle" TargetStyle="TextBox">
   <Setter Property="Text" Value="{Binding Field.Data, Mode=TwoWay}" />
   <Setter Property="Tooltip" Value="{Binding Field.TooltipText}" />
</Style>

我的所有输入字段都派生自一个基类,如果数据和工具提示的绑定能够从样式中自动发生,那就太好了。

提前感谢您提供有关这些方面的任何知识和/或帮助。

【问题讨论】:

    标签: wpf binding


    【解决方案1】:

    您发布的内容可以正常工作,只需直接绑定到DataTooltipText 而不是Field.DataField.TooltipText

    【讨论】:

      【解决方案2】:

      我找到了答案,正是你回复的!我只需要将 DataContext 设置为 FieldName,现在一切正常。

      <TextBox Style="{StaticResource TextBoxStyle}" DataContext={Binding FirstName}">
      

      这个数据绑定的东西太酷了。

      再次感谢您的帮助!

      【讨论】:

        猜你喜欢
        • 2011-12-14
        • 2010-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-08
        • 2011-01-20
        • 2015-10-15
        相关资源
        最近更新 更多