问题标签 [observable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - ObservableCollection 未绑定到代码隐藏中的 ListBox
我想在后面的代码中将一个列表框绑定到一个可观察的集合。这就是我用于绑定的内容:
symTable
继承自ObservableCollection
, Count 属性得到适当更新,所以我知道我正在正确添加元素,但列表框不是。我不知道将路径设置为什么,因为在 XAML 中它绑定到整个列表。
注意:将单个项目添加到 ListBox 时,它们会显示出来,因此这不是显示问题。我也试过:
在窗口构造函数中,然后是:
但它说资源无法解决。
我还尝试将它添加为 XAML 中的资源,但它不再起作用://在窗口的资源中。
然后在后面的代码中:
symTable = (SymbolTable)this.FindResource("symTable");
有谁知道在代码后面或 XAML 中执行此操作的任何其他方式,我认为ElementName
指的是在代码后面定义的对象。
这是 symTable 类定义的一部分:
请注意,所以我只是注意到最奇怪的事情,Items.Add 没有引发 INotifyChanged 事件。我在我的 Insert 方法中使用了 Items.Add,我猜 Items.Add 没有引发 INotifyChanged 事件,因此 ListBox 没有得到更新,但是什么时候 Add 而不是 Items.Add 然后它起作用了。你知道这是否真的是这样吗?
c# - 使用“yield return”观察异步序列
以下示例工作正常:
然而,我真正想要的是使用注释掉的行——即我想异步运行“数字生成器”,每次它产生一个新值时,我希望它输出到控制台。它似乎不起作用 - 我如何修改此代码才能工作?
system.reactive - 仅在使用 Rx + WebRequest + XDocument.Load 修改时检索 XDocument
我有以下两个可观察的
System.Net.WebRequest req = System.Net.HttpWebRequest.Create("http://test.com/data.xml");
req.Method = "HEAD";
var ob = Observable.FromAsyncPattern(req.BeginGetResponse, req.EndGetResponse);
ob().Select(x => x).Select(x => x.Headers["Last-Modified"]).DistinctUntilChanged(x => x);
Observable
.Interval(TimeSpan.FromSeconds(1.0))
.Select(_ => XDocument.Load("http://test.com/data.xml"));
我希望 XDocument observable 仅在“last-modified”标头大于先前请求的文档时才执行任何想法?
java - 更新 java GUI 作为模型更改的内部状态
随着模拟模型的内部状态发生变化,我在更新 gui 时遇到问题。类模拟器运行一定数量的步骤。每一步,计算机的内部状态都会发生变化。Gui 然后收到通知,并应重新绘制计算机的图形表示,包括当前状态的文本。不幸的是,对于下面详述的类,gui 仅在模拟运行的最后一步之后更新更改。我正在使用观察者(计算机)和可观察(GUICanvas)模式。我做错了什么,GUI不会在模拟的中间步骤上重新绘制?
c# - 是否有可能 Observable.Buffer 在时间以外的其他东西上
我一直在寻找有关如何在 rx 中使用 Observable.Buffer 的示例,但找不到比样板时间缓冲的东西更重要的东西。
似乎确实存在指定“bufferClosingSelector”的重载,但我无法理解它。
我要做的是创建一个按时间或“累积”缓冲的序列。考虑一个请求流,其中每个请求都有某种权重,我不想一次处理超过 x 个累积权重,或者如果累积的权重不够,就给我最后一个时间范围内的内容(常规缓冲区功能)
java - 通知演示者模型已更改
我正在使用 MVP 设计模式,并且我已将我的演示者注册为我视图中各种按钮和其他交互元素的侦听器。这很好用,每当用户在 GUI 中执行某些操作时,我都会收到通知。
但是,我没有在模型更改时通知演示者的程序。我有来自服务器的数据,这些数据在例如 User 模型中进行处理,并更改了我的 User 对象的值。
你如何通知演示者模型在 Java 中发生了变化?
presenter.userObjectHasBeenUpdated()
在我更改用户对象后,我是否让我的模型持有对演示者的引用并在我的模型中显式调用类似的东西?或者有没有办法在用户对象上放置一个监听器,presenter.userObjectHasBeenUpdated()
当用户对象被修改时会自动调用?
knockout.js - KnockoutJS - 可观察对象的可观察数组
我想显示一个可编辑的项目列表,其中的每个项目都是可编辑的(有点像可编辑的网格,在某种程度上)。我正在使用 KnockoutJS。我不能只使用一个简单的 Observable Array,因为正如文档所述“一个 observableArray 跟踪数组中的哪些对象,而不是这些对象的状态”
因此,我创建了一个可观察对象的 observableArray(使用 utils.arrayMap),并将它们绑定到视图。但是,问题是如果我在屏幕上编辑数据,用户在屏幕上所做的任何数据输入更改似乎都不会生效。见http://jsfiddle.net/AndyThomas/E7xPM/
我究竟做错了什么?
</p>
java - 观察者模式或其他模式
我正在开发一个小型实用程序,它必须非常仓促地开发:(。实验时间太短了:(。实际上该实用程序有三个主要部分。其中两个正在填充一些不同的数据池。第三个需要坐下来听其中一个数据池,并在数据池被附加数据填充的那一刻开始运行。显然,你所有的翅膀都作为三个不同的线程运行。现在我的问题是第三个翅膀。应该是什么最好的方法。我应该使用观察者和可观察模式还是Java中有其他可用的替代方案(是的,需要一些准备好使用的f / w)。没有做太多的研发。对不起,但正如我所说的时间不多用于实验。那么任何其他让你印象深刻的模式就像听众模式一样?
谢谢, 玛维亚
java - 替代 Java 的 Observable 类?
event
我从 C# 世界来到 Java,其中观察者模式被实现为带有关键字的一流语言结构。
我看到 JavaObservable
从早期就有这个类,但它显然存在实现问题并且似乎没有被广泛使用。到目前为止,我只是在我的 Java 代码中滚动我自己的观察者模式实现,但我总是忍不住认为必须有一个更好的替代方案来总是输出这个样板代码。Swing 中有 Listener 类,但它们似乎不适用于非 Swing 代码。
对于这个非常常见的问题,推荐的解决方案是什么?第三方库对我来说没问题。
arrays - 如何观察 Ember.Array 中的嵌套属性
假设我有一个模型Stock
,它有几个StockPartition
(它的一个名为 的属性partitions
,它的一个数组)。
该Stock
模型有一个属性,该属性usedAmount
应在所有partition.amount
更改时更改,当然,在添加/删除分区时也会更新。
例子 :
怎么可能Stock
观察到每一个partitions.amount
?我可以编写一个addPartition
如下所示的函数:
但我希望有更好的解决方案。