【问题标题】:Binding UI-element to UI-element like Textbox to Textbox将 UI 元素绑定到 UI 元素,例如 Textbox 到 Textbox
【发布时间】:2014-07-21 08:26:21
【问题描述】:

我有像文本框这样的 UI 元素,我想将它们绑定到 ViewModel。我需要访问文本框的许多属性,例如 text- 或 IsEnabled-property。 是否可以将文本框直接绑定到 ViewModel 中的另一个文本框及其所有属性,而不是将每个属性都绑定到属性?

【问题讨论】:

    标签: wpf data-binding


    【解决方案1】:

    是的,使用ElementName,但您仍然绑定所有属性。

    <!-- Bound to ViewModel -->
    <TextBox Name="tbOne" IsEnabled="{Binding OneIsEnabled}" Text={Binding TextOne}/>
    
    <TextBox Name="tbTwo" IsEnabled="{Binding ElementName=tbOne, Path=IsEnabled}" Text={Binding ElementName=tbOne, Path=Text}/>
    

    没有将 TextBox 的所有依赖属性绑定到另一个的内置方法。就个人而言,我更喜欢直接绑定到 ViewModel。

    另一种解决方案是创建一个 UserControl,它在内部克隆具有所有绑定的 TextBox:

    <CloneControl Target="{Binding ElementName=tbOne}"/>
    

    在这里,ControlControl 将检查目标,并拥有创建新文本框的代码,并在代码中设置绑定。这仅在您经常执行此操作时才有用,并且要付出轻微的性能代价,因为您正在向 UI 树添加另一个级别的控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      相关资源
      最近更新 更多