【发布时间】:2010-07-23 05:03:59
【问题描述】:
大家好,我对 Rx 非常非常非常陌生,正在尝试组合一个简单的测试应用程序。它基本上使用 Rx 订阅窗口单击事件,并将文本框上的文本设置为“已单击”。这是一个 wpf 应用程序。这是xml:
<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
InnnerException 消息:
事件委托的形式必须是 void Handler(object, T) where T : EventArgs。
请帮忙!!!
【问题讨论】:
-
也许您可以从以下示例中获得帮助。 rxwiki.wikidot.com/101samples#toc6
标签: c# wpf system.reactive