C#でイベントが発生するまでコードフローをブロックする方法
ここにGridとがありButtonます。ユーザーがボタンをクリックすると、Utilityクラスのメソッドが実行され、アプリケーションがグリッドをクリックするように強制します。コードフローはここで停止し、ユーザーがをクリックするまで続行しないでくださいGrid。 私はここまでに同様の質問をしました: ユーザーがC#WPFをクリックするまで待ちます その質問では、動作するasync / awaitを使用して回答を得ましたが、これをAPIの一部として使用するので、コンシューマーは自分のメソッドを非同期は必要ありません。 Utility.PickPoint(Grid grid)この目標を達成するためのメソッドをどのように記述しますか? 私はこれを助けるかもしれないが、正直に言うとここに適用することを完全には理解していませんでした: イベントが完了するまでブロックする コンソールアプリケーションのConsole.ReadKey()メソッドのようなものと考えてください。このメソッドを呼び出すと、値を入力するまでコードフローが停止します。デバッガは、何かを入力するまで続行されません。PickPoint()メソッドの正確な動作が必要です。コードフローは、ユーザーがグリッドをクリックするまで停止します。 <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="3*"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> <Grid x:Name="View" Background="Green"/> <Button Grid.Row="1" Content="Pick" Click="ButtonBase_OnClick"/> </Grid> </Window> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } …