0
我無法通過XAML將參數傳遞給操作方法。WPF將CommandParameter傳遞給動作方法RelayCommand
這是我的XAML
<Button
Name="btnOK"
Content="OK"
HorizontalAlignment="left"
Margin="961,253,0,0"
VerticalAlignment="Top"
Width="67"
Command="{Binding CmdCloseWindow, Mode=OneWay}"
CommandParameter="{Binding ElementName=ItemWindow}"
這裏是我的C#RelayCommand代碼
CmdGetProductItem = new RelayCommand<object>(p => GetProductItem(), p => CanExecute());
CmdUnCommpressedFiles = new RelayCommand<object>(p => GetUnCommpressFiles(), p => CanExecute());
CmdDeCommpressedFiles = new RelayCommand<object>(p => DeCommpressingFiles(), p => CanExecute());
//CmdSaveProductItemChanges = new RelayCommand(t => SaveChanges(), t=> CanExecute());
//Error is here
CmdCloseWindow = new RelayCommand<Window>(p => CloseWindow(*** Asking to put parameter in here ****), p => CanExecute());
但我正在逐漸從XAML參數,所以我不能把任何東西在上面簽名,其他職位狀態把它留空,但編者抱怨。
這是RelayCommand調用的方法。
private void CloseWindow(Window window)
{
if (window != null)
{
window.Close();
}
}
任何幫助,我將不勝感激。
p是ItemWindow所以爲什麼要加入到簽名p => CloseWindow(p)傾斜? – SWilko
我不知道關於Lambda ..感謝您的知識!但是,它現在抱怨超載錯誤,所以我猜p typent窗口? – user3428422
取決於你的錯誤。放一個斷點來看看,讓我們知道如果仍然不工作 – SWilko