2011-03-15 162 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