MViewデザインパターン用のIViewを実装しようとしています。これにより、ViewModelはIView実装クラスを使用してユーザーと対話できます。 IViewインターフェースは、Prompt、Alert & Confirmのような機能を有する。私はIViewインターフェイスの3つの実装を持っています:CommandLineInteraction、WPFInteraction & TelerikInteraction。最初の2つは行動において同様である(すなわち、それらは同期的である)。 3番目は非同期に動作します。UIスレッドの非同期呼び出しを同期呼び出しに変換する
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
}
は、どのように私は行動のこれらの実装は似て作るのですか?
おかげで、
スニル・クマール
ありがとうございました。このようにします。 – sunilkumarba