2013-12-10 105 views
0

命令我有是在我的應用程序資源定義的視圖模型,這個視圖模型有一個名爲RunCommand綁定到處於靜態資源視圖模型不DataContext的

,並在我的主窗口我試圖綁定該命令命令按鈕不設置的DataContext所以我嘗試

<Button Command="{Binding Source={StaticResource ViewModel.RunCommand}}"/> 

它表現出的異常,但是當我做以下事情做工精細

<Button DataContext="{Binding Source={StaticResource ViewModel}}" Command="{Binding RunCommand}"/> 

第一部分有什麼問題,我是否必須爲這樣一個簡單的任務設置datacontext?

回答

1

您當然不會被迫更改/設置DataContext,因此您可以綁定一個簡單的屬性。

這裏有你想要

<Button Command="{Binding RunCommand, Source={StaticResource ViewModel}}"/> 
0

設置datacontext是一件很好的事情......它帶走了你所說的對象的巫術。我相信所有的MVVM框架都可以幫助你找到定位器,當不使用它們時,你可以使用你的代碼。

這只是語言的工作方式。

+0

但我肯定第一個語法有什麼不對,沒有變通寫在命令屬性的一切呢? – FPGA

+0

我會在'window'中爲整個視圖綁定datacontext,然後執行:'

+0

@Nocits reson是界面非常複雜,此按鈕同步應用程序設置到服務器,以便與其相關的viewmodel不是主視圖 – FPGA

相關問題