2012-01-23 37 views
0

我有一個ListBox,並綁定到MyViewModel類型的ObservableCollection。項目模板是一個HyperLinkBut​​ton。有沒有辦法將MyViewModel傳遞給HyperLinkBut​​ton.Click - 事件?該事件有2個參數,對象發送者和RoutedEventArgs。發件人是HyperLinkBut​​ton類型,我根本沒有任何對Binding對象的引用!有沒有辦法將MyViewModel作爲參數添加到click事件中?獲取超鏈接按鈕中的綁定對象 - 單擊事件?

感謝

+1

沒有更多的上下文我不能確定你想要做什麼,但從我讀的內容來看,你可能想看看Hyperlink的[Command](http://msdn.microsoft.com/en-us /library/system.windows.controls.primitives.buttonbase.command(v = vs.95).aspx)屬性。使用命令應該允許您以比通過事件處理程序更合適的方式訪問您的視圖模型。 – madd0

+0

madd0; Abgree關於使用命令!如果項目更大更復雜,我會走下去。 –

+0

好的,但爲什麼你需要一個更大的項目來使用命令?它幾乎不需要任何努力來使用它們而不是使用事件... – madd0

回答

3

物業CommandParameter應該做的工作。

<HyperLinkButton Click="ClickEvent" CommandParameter={Binding} /> 

這應該工作,因爲它會使用綁定到它的當前MyViewModel。那麼你只需要在事件參數中訪問它。還有一個選擇。您可以從發送方獲取DataLink,即HyperLinkBut​​ton。它將您引導至MyViewModel實例。希望這可以幫助

編輯:似乎有點奇怪你沒有在你的HyperLinkBut​​ton中的對象引用。你確定它不是你需要的數據環境嗎?

+1

謝謝Rikkos!攫取DataContext的伎倆。 –

相關問題