2010-12-15 40 views
1

任何人都可以回答一個真正令人沮喪的新手問題嗎?!我一直在尋找答案几天&已找到類似問題的答案,但沒有什麼能完全解決我的問題。我試圖綁定一個文本框到列表視圖中的當前選定的項目(本身綁定到對象的Observablecollection,不知道這是否重要)。WPF - 如何綁定到不同頁面的源代碼?

listview位於RecentEntities.xaml &文本框位於Relationship.xaml中,兩者都位於Maincontrol.xaml內的主窗口中。因此,它們位於同一個命名空間中,但它們位於不同的頁面中,因此使用ElementName不起作用,因爲這看起來似乎在當前頁面中顯示。

我遇到的問題是當試圖在Relationship.xaml中定義文本框綁定的來源時,如何引用RecentEntities.xaml中的選定列表視圖項目?我想知道如何使用RelativeSource,但是這似乎只能讓你將樹導航到當前控件的祖先。由於MainControl是如何設置的,我需要前往文本框的父級,然後到達父級的同級,然後到達其子級的孩子,以便進入列表視圖!

我已經探索過(可能沒有深入到)其他選項,如資源,數據上下文,包括頭文件,並閱讀了一些關於合併資源字典的內容,但老實說,我探索的可能性越大,我越困惑瞭解我需要做的事情。

這看起來真的很複雜嗎?!任何指針或幫助將是輝煌的,謝謝你花時間回答:)我以前沒有在這裏發佈過,所以如果你需要任何代碼片段,請讓我知道。

回答

2

你可以創建一個ViewModel,這兩個視圖將使用?讓列表視圖中的選定項綁定到ViewModel中的一個屬性,並將該文本框綁定到相同的屬性。只要這兩個視圖引用視圖模型的同一個實例,它就可以工作。

0

對於兩個XAML文件,您將不得不使用model或viewmodel(取決於您選擇的體系結構)進行同步。

對於listview,你可以使用SelectedValue綁定到一個屬性,使用Mode=OneWayToSource這個綁定,因爲你只是想更新屬性,而不是改變listview本身的選擇。

+0

非常感謝您的答案!我對Viewmodel方法一無所知,但已經仔細研究了一下,這似乎是實現我需要的方法。現在的工作是弄清楚如何將所有的代碼調整到這個模型中!再次感謝,你們都非常有幫助。 – iambic77 2010-12-17 10:33:46