こんにちは、私は Rx の初心者で、簡単なテスト アプリを作成しようとしています。基本的に、Rx を使用してウィンドウ クリック イベントをサブスクライブし、テキスト ボックスのテキストを "Clicked" に設定します。wpfアプリです。xaml は次のとおりです。
<Window x:Class="Reactive.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Canvas>
<TextBlock Name="txtClicked" Text="Rx Test"/>
</Canvas>
</Grid>
コードビハインドは次のとおりです。
using System;
using System.Linq;
using System.Windows;
using System.Windows.Input;
namespace Reactive
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
/// <summary>
/// Initializes a new instance of the <see cref="MainWindow"/> class.
/// </summary>
public MainWindow()
{
InitializeComponent();
var xs = from evt in Observable.FromEvent<MouseEventArgs>(this, "MouseDown")
select evt;
xs.ObserveOnDispatcher().Subscribe(value => txtClicked.Text = "Clicked");
}
}
}
しかし、何らかの理由でコードが実行されません。メッセージが表示されます:
指定されたバインディング制約に一致するタイプ 'Reactive.MainWindow' でのコンストラクターの呼び出しで、例外がスローされました。行番号 '3' および行位置 '9
InnerException メッセージ:
イベント デリゲートは、void Handler(object, T) の形式である必要があります。ここで、T : EventArgs.
助けてください!!!