0

我正在嘗試做.net方式的事情,併爲我的上下文菜單聲明我的菜單項,如xaml中的好公民:)。在上下文菜單中設置MenuItem可見性的正確方法?

我有一個列表框,其中包含一堆基於ItemsSource的列表項。

問題:如何根據要在頁面類中定義的函數動態設置特定菜單項的可見性?

我可以將數據綁定到我的DataContext類中的一個屬性,但有一些更具體的ui特性,它真的不應該知道,所以我想保持它乾淨。

可以以某種方式將可見性綁定到頁面類中的函數並將其傳遞給數據上下文,並讓它返回所需的適當可見性值?還是有另一種方式?

謝謝! 豬

+0

它像你想要在你的menuitem上使用ICommand並將它傳遞給datacontext並讓CanExecute確定它是否可以執行。 – invalidusername 2012-01-01 03:54:54

回答

1

綁定非常有用,因爲每當綁定值更改時UI都會更新。由於函數沒有更新,即使你可以綁定到一個函數,UI也不會改變。 UI也永遠不知道何時調用綁定函數。

爲什麼你不綁定到布爾DataProperty然後使用該函數來更新布爾。如果你更多地解釋你正在嘗試做什麼,那麼我可以給你一個更詳細的解決方案。

+0

要顯示的菜單項的標準之一是用戶登錄。數據類目前不知道這一點,我不認爲它應該知道這一點。也許我應該將我的數據類包裝到另一個實現數據上下文的類中,並使用這些信息來擴充它?也許可以推導出它? – swinefeaster 2012-01-01 00:00:28

+0

標準的其餘部分是什麼?它的變化頻率如何?看看一個[示例Silverlight應用程序](http://dl.dropbox.com/u/26625851/SampleApp.zip)我爲另一個問題。它有多個布爾綁定來確定文本塊的可見性。這不是WP7應用程序,但它不應該很難移植。 – 2012-01-01 02:45:05

+0

我最終做的是創建了一個ViewData類,它封裝了純淨的.net不可知的數據類,並且還實現了菜單項可見性的邏輯,我按照您的建議將它綁定到菜單項。謝謝! – swinefeaster 2012-01-02 23:20:31

相關問題