2011-03-27 39 views
5

如何在Silverlight 4(XAML)中綁定IsEnabled屬性?如何在Silverlight 4中綁定ContextMenu的IsEnabled屬性?

我只是試着IsEnabled="{Binding ABC}",但這不起作用 - MenuItem總是啓用。

在此先感謝您的線索!

乾杯

編輯:

有趣的是,設置Mode=TwoWay當綁定似乎工作。但是,將鼠標移動到菜單項上之後,會更新上下文菜單的外觀。這是異步工作嗎?右鍵單擊後,更新我的上下文菜單的佈局的方法是什麼? (我嘗試UpdateLayout()但它不起作用)

+0

什麼是ABC,它是在視圖模型中的屬性,或者你是否試圖綁定到其他東西。如果它在視圖模型中,你在哪裏改變ABC並通知視圖? – 2011-03-27 01:22:58

+0

@韋斯,是的,這正是你寫的。 – Jamie 2011-03-27 09:13:54

回答

6

好的,這是Silverlight Toolkit中的一個已知錯誤 - 即使IsEnabled屬性被綁定並正確通知,上下文菜單的外觀也不會改變。我不得不實施一個解決方法(簡單地更新控件的視圖)。無論如何,謝謝你的答覆:)

+0

我有同樣的問題 - 你如何更新控件的視圖? – Calanus 2011-08-03 18:32:28

+2

ok,contextMenu1.InvalidateArrange()在上下文菜單的打開事件中工作 – Calanus 2011-08-03 18:40:14

1

調試此方法的一個好方法是在使用Visual Studio進行調試時查看輸出窗口。在那裏打印綁定問題。

你是否已將DataContext設置爲具有公共屬性的對象ABC

+0

我注意到,當我設置模式(TwoWay)時,綁定似乎工作。但是,菜單項的外觀不會改變(直到我將光標移到它上面)。你有什麼想法? – Jamie 2011-03-27 09:42:53

+0

視圖模型中的屬性是依賴項屬性還是在視圖模型中實現INotifyPropertyChanged?即如何在IsEnabled更改時通知視圖? – 2011-03-28 04:25:01

+0

我實現了INotifyPropertyChanged。 – Jamie 2011-03-28 06:20:53

相關問題