2011-03-15 139 views
0

你好 我有一个绑定,我想要做的问题,无法找到任何信息如何做到这一点。 基本上我想绑定一个对象到另一个对象的属性。 例如WPF XAML绑定

<TextBox Text="test" Tag="{Binding ElementName=TxtBx2}" x:Name="TxtBx1"/> 
<TextBox Text="test" x:Name="TxtBx2"/> 

这是一种奇怪的,但它会帮助对我实施,这样对一个对象的属性我想在XAML另一个对象绑定的代码。

我不知道这是可能的,任何指针将是有益的 谢谢,鲁本

回答

2

那你是怎么做到这一点;你只需要指定Path

<TextBox Text="test" Tag="{Binding ElementName=TxtBx2, Path=Text}" x:Name="TxtBx1"/> 
<TextBox Text="test" x:Name="TxtBx2"/> 

如果你想要的TextBoxDataContext;那么你的路径会相应改变。

<TextBox Text="test" Tag="{Binding ElementName=TxtBx2, Path=DataContext}" x:Name="TxtBx1"/> 
<TextBox Text="test" x:Name="TxtBx2"/> 

如果你需要一个WPF应用程序中使用Tag属性,你可能要重新评估你的方法,因为我还没有使用Tag的性能,因为从WinForms的移动为需求已取代利用WPF中的数据绑定功能。

UPDATE:

如果你的目标是结合给定的控制与在控制的属性;那么不要在Path内指定属性名称。

根据你的目标; attached behaviors将是一个更好的方法,并允许您将扩展DataGrid中的功能打包。

+0

您好,感谢您的答复,我知道我能做到这一点,但我想要的对象,而不只是一个属性。 – 2011-03-15 16:58:56

+0

我用标签属性作为示例...我需要做的是:我有一个Datagrid,我从wpftoolkit数据网格和用户控件是该Datagrid的寻呼机扩展,所以当我移动到另一个页面我需要对数据网格进行一些处理,所以如果我可以让数据网格中的寻呼机能够监听那个寻呼机的事件,这听起来很愚蠢,但是现在我已经有了最好的想法....也许我需要采取另一个aproach ....任何想法,欢迎 – 2011-03-15 17:01:13

+0

@Ruben更新回答;请记住,如果您正在采用MVVM方法,则在此实例中为TextBox的控制下的数据应可通过ViewModel从控件外部访问。底线是,你不应该去控制,以获得在大多数情况下的数据。 – 2011-03-15 17:06:32

0
<TextBox Text="test" Tag="{Binding ElementName=TxtBx2,Path=Text}" x:Name="TxtBx1"/> 
<TextBox Text="test" x:Name="TxtBx2"/> 
0

假设你想TxtBx1的Text属性的值是在TxtBx2 Text属性的值,你可以使用:

<TextBox x:Name="TxtBx1" Text="{Binding ElementName=TxtBx2, Path=Text}" /> 
<TextBox x:Name="TxtBx2" Text="test" /> 

更新

假设(可能再次错误!)您想要将TxtBx1元素绑定到TxtBx2的标记,您可以使用:

<TextBox x:Name="TxtBx1" Text="test" /> 
<TextBox x:Name="TxtBx2" Tag="{Binding ElementName=TxtBx1}" Text="test" /> 

出于兴趣,你为什么想要做这样的事情?

更新2

假设你有你已经从wpftoolkit DataGrid和用户控制,以该数据网格中的寻呼机延长一个DataGrid,当你移动到另一个页面,您需要做的为什么不在数据网格中更新数据网格(如果使用后面的代码),或者更新数据网格在页面中绑定的项目在视图模型上更改谓词(if使用MVVM)?

+0

嗨,感谢您的回复,我知道我可以做到这一点,但我想要的对象,而不仅仅是一个属性。 – 2011-03-15 16:57:56

+0

现在答案更新 – devdigital 2011-03-15 17:01:38

+0

我需要做的是:我有一个Datagrid,我从wpftoolkit数据网格和一个用户控件是该Datagrid的寻呼机扩展,所以当我移动到另一个页面时,我需要做一些处理数据网格,所以如果我可以在数据网格中寻呼机,我可以听该寻呼机的事件,这听起来很愚蠢,但是现在我有最好的想法....也许我需要另一个aproach ....欢迎任何想法 – 2011-03-15 17:06:22

-1

嗯,这有一定道理绑定到整个对象(而不是任何特定的属性)与项目控制像这样:

<ListBox x:Name="pictureBox" 
ItemsSource=”{Binding Source={StaticResource photos}}" …> 
...... 
</ListBox> 
+1

-1这种绑定不是对另一个控制 – 2011-03-15 17:31:24

+0

你可以pelase再次读他的问题吗?他写道:“基本上我想将一个对象绑定到另一个对象的属性。”他没有具体说Control.I举了一个例子,整个集合(照片)绑定到ListBox的属性(ItemsSource)。 – 2011-03-15 17:55:01