我有一個綁定到可觀察對象集合的數據網格。我想做的是有一個按鈕,該按鈕將執行表示被單擊的按鈕行的對象的方法。所以我現在所擁有的是這樣的: <DataGridTemplateColumn Header="Command"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Name="cmdCommand" Click="{Binding Command}" Content="Command"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>哪個不起作用并報告以下錯誤:Click =“ {Binding Command}”無效?!?{Binding Command}”不是有效的事件處理程序方法名稱。僅生成的類或代碼隱藏類上的實例方法有效。我已經看過命令綁定,但是看起來最終將只使用一個外部命令,而不是綁定到該行的對象。我在后面的代碼上使用事件處理程序來工作,然后將其路由到綁定到所選行的項目(因為單擊按鈕時該行被選中),但這似乎是處理此問題的較差方法,我認為我我只是在這里缺少一些東西。
3 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
您有各種各樣的可能性。最簡單最丑陋的是:
XAML
<Button Name="cmdCommand" Click="Button_Clicked" Content="Command"/>
背后的代碼
private void Button_Clicked(object sender, RoutedEventArgs e) {
FrameworkElement fe=sender as FrameworkElement;
((YourClass)fe.DataContext).DoYourCommand();
}
另一個解決方案(更好)是在上提供ICommand屬性YourClass。該命令已經具有對YourClass-object 的引用,因此可以對該類執行操作。
XAML
<Button Name="cmdCommand" Command="{Binding YourICommandReturningProperty}" Content="Command"/>
因為在編寫此答案期間,發布了許多其他答案,所以我不再寫更多。如果您對我的一種顯示方式感興趣,或者您認為我做錯了,請發表評論。
添加回答
舉報
0/150
提交
取消