Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 将UI元素绑定到UI元素,如将Textbox绑定到Textbox_Wpf_Data Binding - Fatal编程技术网

Wpf 将UI元素绑定到UI元素,如将Textbox绑定到Textbox

Wpf 将UI元素绑定到UI元素,如将Textbox绑定到Textbox,wpf,data-binding,Wpf,Data Binding,我有像文本框这样的UI元素,我想将它们绑定到ViewModel。我需要访问文本框的许多属性,比如text-or-IsEnabled属性。 是否可以将文本框直接绑定到ViewModel中的另一个文本框及其所有属性,而不是将每个属性绑定到属性?是的,使用ElementName,但仍然绑定所有属性 <!-- Bound to ViewModel --> <TextBox Name="tbOne" IsEnabled="{Binding OneIsEnabled}" Text={Bin

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

是的,使用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树添加另一级别的控件时需要付出一点性能代价