我有一個UserControl與一些InputBindings。我想讓其中一個輸入綁定(箭頭鍵按下)在我的UserControl的GUI控件上執行一個命令。所以在XAML中,可以在聲明元素之前使用ElementName綁定?
例如
<UserControl.InputBindings>
<KeyBinding Key="Up" Command="{Binding ElementName=MyViewElement, Path=MoveUpCommand}"/>
<KeyBinding Key="Down" Command="{Binding ElementName=MyViewElement, Path=MoveDownCommand}"/>
</UserControl.InputBindings>
但是,這種失敗,因爲沒有找到MyViewElement,因爲我認爲它是後來在XAML聲明。如果我將InputBindings移動到XAML文件的末尾,一切都按預期工作。
我還挺喜歡我的化InputBindings是在頂部,這可能使它忽略聲明順序?
不,我不認爲你可以。你可以檢查:http://stackoverflow.com/questions/1301119/silverlight-xaml-attribute-definition-order-matters – mlemay 2013-03-01 19:45:21
想想你的Xaml就像一個代碼塊,你不能在聲明它們之前使用變量。 – 2013-03-01 23:52:08
@ sa_ddam213是的,我希望把它想像成一個班,在那裏我可以用它們無論在哪裏,他們都宣稱;-) – Alan 2013-03-02 06:38:10