我想聚合卡刷卡的PreviewKeyUp事件,但是一旦我在基本设置上应用了任何聚合转换,它就会停止工作。不知道我在做什么错。
//base setup to wrap event works perfectly
var x = Observable.FromEventPattern<KeyEventArgs>(
h => this.PreviewKeyUp += new System.Windows.Input.KeyEventHandler(h),
h => this.PreviewKeyUp -= new System.Windows.Input.KeyEventHandler(h))
.Select(a =>
{
//In house function
return TranslateKey(a.EventArgs.Key);
});
x.Subscribe(s => Console.WriteLine("seems I'm working: " + (s)));
输出: 似乎我在工作:5 似乎我在工作: 似乎我在工作:1 似乎我在工作:2 似乎我在工作:3 似乎我在工作:5 似乎我在工作:7 似乎我在工作:7 似乎我在工作:= 似乎我在工作:5 似乎我在工作:5 似乎我在工作:5 似乎我在工作:5 似乎我在工作:5 似乎我在工作:= 似乎我在工作:6 似乎我在工作:5 似乎我在工作:4 似乎我在工作:3 似乎我在工作:3 似乎我在工作:2 似乎我在工作:8 似乎我在工作:?
但是一旦在下面的转换中应用(因为我正在交换一张卡,并且它会产生多个keyup事件,并且我想将它们放在一起并生成一个字符串),它将停止工作,不确定为什么
var x = Observable.FromEventPattern<KeyEventArgs>(
h => this.PreviewKeyUp += new System.Windows.Input.KeyEventHandler(h),
h => this.PreviewKeyUp -= new System.Windows.Input.KeyEventHandler(h))
.Select(a =>
{
return TranslateKey(a.EventArgs.Key);
})
.ToList().Select(s => string.Concat(s));
x.Subscribe(s => Console.WriteLine("seems I'm working: " + (s)));