ViewModel が IView 実装クラスを使用してユーザーとやり取りできるようにする MVVM デザイン パターンの IView を実装しようとしています。IView インターフェイスには、Prompt、Alert & Confirm などの機能があります。CommandLineInteraction、WPFInteraction、TelerikInteraction の 3 つの IView インターフェイスの実装があります。最初の 2 つの動作は似ています (つまり、同期しています)。3 つ目は非同期で動作します。
TelerikInteraction を同期的に動作させたい。つまり、RadWindow.Confirm() または RadWindow.Prompt() の呼び出しに続くコードは、ユーザーが対話するまで待機する必要があります。
以下は、3 つの実装すべてのコード スニペットです。
//CommandLine Implementation
public CustomConfirmResult Confirm(string message) {
Console.WriteLine(message);
Console.WriteLine("[Y]es [N]o");
string s = Console.ReadLine();
if(s == y || s == Y)
return CustomConfirmResult.Yes;
else
return CustomConfirmResult.No;
}
//Windows Implementation
public CustomConfirmResult Confirm(string message) {
MessageBoxResult mbr = MessageBox.Show(message, "", MessageBoxButton.OKCancel);
if(mbr == MessageBoxResult.OK)
return CustomConfirmResult.Yes;
else
return CustomConfirmResult.No;
}
//Telerik Implementation
public CustomConfirmResult Confirm(string message) {
CustomConfirmResult result;
RadWindow.Confirm(new DialogParameters{
Content=message,
Closed = (o1, e1) =>{
if(e1.DialogResult == true)
result = CustomConfirmResult.Yes;
else
result = CustomConfirmResult.No;
}
});
return result; //Executed before user interacts with the confirm dialog
}
これらの実装の動作を類似させるにはどうすればよいですか?
ありがとう、
スニル・クマール