我是 MVVM 模式的新手,我只是想問什么是從 ViewModel 中“單擊”或執行具有 contentdialog 命令引數的按鈕命令的最佳方式。
示例代碼:查看
<Button Command="{x:Bind ViewModel.OpenContentDialog}" CommandParameter="{Binding ElementName=DialogBox}" Grid.Row="0" Grid.Column="3">Open Dialog</Button>
<ContentDialog x:Name="DialogBox"
PrimaryButtonText="OK" IsPrimaryButtonEnabled="{Binding PrimaryButtonEnabled}"
CloseButtonText="Cancel">
<ContentDialog.TitleTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Dialog"/>
</StackPanel>
</DataTemplate>
</ContentDialog.TitleTemplate>
...
視圖模型
public RelayCommand<object> OpenContentDialog => new RelayCommand<object>((dialog) => { SortDialog(dialog); });
我想在另一個 ViewModel 方法中呼叫 OpenContentDialog 命令,如下所示:
OpenContentDialog.Execute(); //needs the parameter
我嘗試將實際的 ContentDialog 作為 ViewModel 物件傳遞,它可以作業,但我不確定這是否違反了 MVVM 模式。
uj5u.com熱心網友回復:
如果命令希望將 aContentDialog作為引數傳遞,則您的兩個選項是ContentDialog在呼叫之前以編程方式創建這樣的一個Execute或獲取對現有對話框的參考:
OpenContentDialog.Execute(
new ContentDialog() { PrimaryButtonText = "OK", IsPrimaryButtonEnabled = true });
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330488.html
