编辑:谢谢你的链接,维基,我认为,由于其已经开始存在,其更容易去那里检查它。然而这里的问题也是良好的,所以人们谁都不在身边的msdn论坛得到了解wiki和它在哪里。

简短的问题:

你有一样的Rx代码,可以帮助人们更好地理解它?

长散漫的与隐藏的问题:

现在 Rx框架 已经发布,我认为,我们许多人都感兴趣越来越位,并试图出来。可悲的是真的没有许多实例有(经过详尽的搜索我几乎确信Rx是意味着只要做容易拖wpf应用程序).

我不能回想一下到底在哪里,这是我读过或听说的(我已经看过很多的博客视频),Rx队似乎有兴趣这样做的101系列...当他们得到足够的时间来做到这一点...其中很多很烂为那些想了解它,并与它玩现在的(而我的意思是,什么自尊重开发人员不觉得自己是一个孩子有一个新的玩具时,一个新的科技。这样来)。

我个人一直给予一个现在,尝试,但是哇那里有一些疯狂的概念在这...只要有方法名状 实现拉链 让我想想 传送器 之类的东西从 回到未来.

因此,我认为这将是好的,如果那些与更大的理解,有助于建立一个收集的实例,ala 101皇宫的例子 从基本的使用更复杂的东西,并且几乎复盖所有的方法及其使用,在一个实用的方法(也许有一点点的理论过,特别因为这种概念可能需要它)

我认为其大,MS开发者需要时间来给我们材料喜欢这样,但我也认为这个社区是足够好的开始建立我们自己的材料,不要你了?

有帮助吗?

解决方案

其实我有类似的想法几天前。我们开始我们自己的“101个的Rx样本”为在Rx MSDN论坛一个帖子,但我们因为它转移到一个Wiki格式。请随时过来,并添加自己的样本!

上的Rx维基 101个的Rx样品

其他提示

要开始 - 在这里是一个简单的绘图应用程序,这样,当用户拖动,我们在当前位置绘制从初始鼠标向下位置红线到当前位置,并且还蓝色斑点。这是我上周在黑客的Rx

的结果

“A

这里是源代码。

//A draw on drag method to perform the draw
void DrawOnDrag(Canvas e)
        {

            //Get the initial position and dragged points using LINQ to Events
            var mouseDragPoints = from md in e.GetMouseDown()
                                  let startpos=md.EventArgs.GetPosition(e)
                                  from mm in e.GetMouseMove().Until(e.GetMouseUp())
                                  select new
                                  {
                                      StartPos = startpos,
                                      CurrentPos = mm.EventArgs.GetPosition(e),
                                  };


            //Subscribe and draw a line from start position to current position
            mouseDragPoints.Subscribe
                (item =>
                {
                    e.Children.Add(new Line()
                    {
                        Stroke = Brushes.Red,
                        X1 = item.StartPos.X,
                        X2 = item.CurrentPos.X,
                        Y1 = item.StartPos.Y,
                        Y2 = item.CurrentPos.Y
                    });

                    var ellipse = new Ellipse()
                    {
                        Stroke = Brushes.Blue,
                        StrokeThickness = 10,
                        Fill = Brushes.Blue
                    };
                    Canvas.SetLeft(ellipse, item.CurrentPos.X);
                    Canvas.SetTop(ellipse, item.CurrentPos.Y);
                    e.Children.Add(ellipse);
                }
                );
        }

阅读我的文章进一步解释这里此处下载源代码

希望这有助于

另一种有用的资源可以是href="http://rxkoans.codeplex.com/" rel="noreferrer">无扩展的 55个逐行示例,以帮助你学的Rx

我读 http://www.introtorx.com ,该像顾名思义似乎是一个简明的介绍。似乎有相当多的(很基本的)例子,一步一步大多使用控制台打印的东西了。

这是我的变化 拖拽的样本通过韦斯代尔, 对于Windows的形式(我会让EnableDragging一个扩展方法,可能):

    public Form2()
    {
        InitializeComponent();

        EnableDragging(pictureBox1);
        EnableDragging(button1);
        EnableDragging(this);
    }

    private void EnableDragging(Control c)
    {
        // Long way, but strongly typed.
        var downs = from down in Observable.FromEvent<MouseEventHandler, MouseEventArgs>(
                        eh => new MouseEventHandler(eh), 
                        eh => c.MouseDown += eh,  
                        eh => c.MouseDown -= eh)
                    select new { down.EventArgs.X, down.EventArgs.Y };

        // Short way.
        var moves = from move in Observable.FromEvent<MouseEventArgs>(c, "MouseMove")
                    select new { move.EventArgs.X, move.EventArgs.Y };

        var ups = Observable.FromEvent<MouseEventArgs>(c, "MouseUp");

        var drags = from down in downs
                    from move in moves.TakeUntil(ups)
                    select new Point { X = move.X - down.X, Y = move.Y - down.Y };

        drags.Subscribe(drag => c.SetBounds(c.Location.X + drag.X, c.Location.Y + drag.Y, 0, 0, BoundsSpecified.Location));
    }  

迟,但如果在这个问题有人新绊倒, http://rxmarbles.com/ 提供的位一个非常好的方法来可视化的操作符。

还有一个 股票浏览器 Github 上的示例enter image description here

  1. StreamProvider 从服务器提取数据并生成 Rx.NET IObservable 流。
  2. StreamAggregator 聚合所有 IObservable 流并将结果复制到中央处理线程中。
  3. 视图过滤单个流并将结果复制到它们自己的线程中以进行显示。

所有 StreamProvider、StreamAggregate 和 View 都在自己的线程中运行。这也是现实世界股票查看应用程序的典型线程模型。

此示例也可以是 WPF DataGrid 的简单性能测试框架。它计算处理的每秒滴答数并将其显示在视图上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top