问题标签 [2-way-object-databinding]

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.

0 投票
1 回答
1008 浏览

c# - 转换器从 DataGrid 而不是绑定对象获取值?

我正在利用绑定到数据对象的 DataGridTextColumn 来显示应用程序中的各种测量值。我正在尝试实现一个允许以不同单位显示测量值的功能,并认为绑定中的转换器可能是我的最佳选择。

这适用于大多数应用程序,但我在 DataGrid 中有另一个字段,用户可以在其中编辑字段的值。在这种情况下,我有一个双向数据绑定,它将用户输入的值(比如说华氏度)转换回数据对象的默认单位(摄氏度)。

我希望转换器从数据对象中检索摄氏度的值,进行转换,然后将此值(以华氏度为单位)发送到 DataGridTextColumn。但是,在数据对象上设置值并通知 PropertyChanged 后,不会调用该属性的“get”方法。相反,Convert 似乎是从 DataGridTextColumn 获取用户输入的值(以华氏度为单位)。

这是正常行为吗?如果是这样,有没有办法强制 Convert 始终返回数据对象的值?

一些片段可以提供帮助:

转换器方法:

由于 ConvertBack 中可用的信息有限,我在 setter 中进行了“ConvertBack”转换:

编辑:这是一个演示问题的示例项目的链接。左列是用户可编辑的,表示用户查看/编辑的数据。右列显示用户进行更改时实际存储的基础值(此值不应更改)。

如果您修改左列中的值,并在同一行中使用“制表符”或选择不同的列,您可以看到值与您输入的值不同。但是当行失去焦点时它会变回来。通过设置断点,您可以看到当单元格本身失去焦点时,使用 DependencyProperty.UnsetValue 调用 Convert 方法,然后调用 Unit 的 get 方法,然后再次使用 DataGrid 中的值调用 Convert 方法。

温度转换器.zip

0 投票
1 回答
270 浏览

c# - 使用数据绑定从 Datgrid 中的选定行中检索项目

我有一个Datagrid通过 a绑定到 a 的列表Bindinglist,我需要一个完整的 2 路数据绑定

Item如果我知道网格中的行,我现在不知道如何访问。

例如,编辑后我想验证该项目,但只有当我获得对已编辑项目的引用时才能这样做。

或者,如果我知道网格中的关联行,我如何检索列表中的项目。

非常感谢您的帮助

0 投票
2 回答
844 浏览

wpf - WPF RadioButton 已知问题:为什么旧的属性值在属性更改后似乎仍然具有约束力

谢谢。我希望我可以上传整个解决方案,因为我在打开这个问题之前已经准备好了。但我没有找到如何。我将在此处尽可能复制所有代码。

问题是:我认为这是 WPF 中一个容易复制的问题。我做了一个简单的代码版本来清楚地解释我的问题。示例中的容器“TwoPersons”有两个“Person”类实例。“当前”属性将是填充人员详细信息的详细信息面板的数据上下文。我可以使用 Current setter 方法在不同的版本之间跳转。我可以看到细节发生了相应的变化。问题是在切换和填充当前人的过程中,UI 控制更改(例如将男性更改为女性),然后更改会影响它绑定的 PREVIOUS 项目。persion 实例将被意外修改。在新实例绑定后,以前的实例似乎仍然与视图有联系。我怎样才能避免这种情况。任何帮助将不胜感激。

==================================================== =======================

这是 MainWindow.xaml.cs

两个人的容器:

人物类:

主窗口 xaml

0 投票
2 回答
902 浏览

backbone.js - BackboneJS+UnderscoreJS如何将el绑定回模型

我是backscore.js + underscore.js的初学者。对不起,如果这里已经是一个答案。也许我只是没有正确的问题。

我有一个简单的模板:

下一个视图:

和模型:

在我运行渲染后一切正常,但是在我开始编辑表单中的数据(例如更改复选框的状态)后,视图中的模型没有改变。如何以正确的方式改变它。

我知道我可以在视图中的每个输入更改上添加事件,并手动更改整个模型的每个属性的值。在这种情况下,最佳做法是什么?

非常感谢任何提前!

0 投票
1 回答
345 浏览

javascript - 在嵌套的 javascript 对象上使用 ng-repeat 来显示选择选项

如何使用 Angular 的 ng-repeat 指令显示两个带有正确选项的下拉菜单?

这是一个JSBin

js:

HTML:

0 投票
1 回答
341 浏览

actionscript-3 - 双向数据绑定问题

这是我的组件的代码:

Box类有两个继承者:TextBoxImageBox. 所有这些类都是[Bindable]. 在另一个组件中,我选择Box对象并通知上面的组件有关此事件EventBus。我也用它来传递选定的Box对象。每个TextBox对象都有ArrayCollection可用的字体大小(字体)和一个选定的。我想DropDownList以两种方式将 my 绑定到这些值。所以DropDownList总是显示一个框的当前选择的字体大小(字体),如果用户从列表中选择另一个值,它将被设置到当前TextBox对象中。

当我第一次选择 TextBox 对象时,一切正常,但是当我选择另一个对象时,出现错误:

RangeError:属性 fontSize 值 0 超出范围,位于 flashx.textLayout.property::Property$/defaultErrorHandler()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\ property\Property.as:31] 在 flashx.textLayout.property::Property/setHelper()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\property\Property .as:230] 在 flashx.textLayout.formats::TextLayoutFormat/setStyleByProperty()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\formats\TextLayoutFormat.as: 628] 在 flashx.textLayout.formats::TextLayoutFormat/set fontSize()[C:\Vellum\branches\v2\2.0\dev\output\openSource\textLayout\src\flashx\textLayout\formats\TextLayoutFormat.as:1044]在 spark.core::CSSTextLayoutFormat()[E:\dev\4.y\frameworks\projects\spark\src\spark\core\CSSTextLayoutFormat.as:75] 在 spark.components::RichEditableText/updateStylesIfChanged()[E:\dev\4.y\frameworks\projects\spark\src\spark \components\RichEditableText.as:3649] 在 spark.components::RichEditableText/commitProperties()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\RichEditableText.as:2509] 在 mx .core::UIComponent/validateProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8219] 在 mx.managers::LayoutManager/validateProperties()[E :\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:597] 在 mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.y\frameworks\projects \framework\src\mx\managers\LayoutManager.as:813] 在 mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]

不知何故selectedValue,属性DropDownList变为0。我做错了什么?

0 投票
1 回答
334 浏览

javascript - Ember 双向绑定不起作用?

我对 Ember 比较陌生,到目前为止我真的很喜欢它。我正在研究他们文档中的一些示例代码,但似乎无法获得我应该获得的 2 路有界值?我从他们提供的示例中借用了代码,我没有错误。

真的很简单,给妻子定薪水,给丈夫定薪水,再给丈夫定薪水,妻子的薪水应该反映变化,但事实并非如此。

这是我的 jsbin:http: //jsbin.com/asufEvaB/5/

谢谢你的帮助 :)

0 投票
1 回答
107 浏览

angularjs - 如何将表单中的每个元素绑定到angularjs中的对象数组中的项目

我正在尝试将表单中的每个元素绑定到对象数组中的一个元素。有什么好方法可以做到这一点?我是否需要创建客户端模型然后对其进行序列化?下面是关于我想要实现的目标的 jsfiddle

http://jsfiddle.net/PmChk/1

谢谢

0 投票
1 回答
1098 浏览

javascript - 通过指令将元素添加到 DOM 并从控制器(angular.js)绑定范围观察

这是一个小应用程序,您可以在其中添加、编辑和删除项目 - 所有这些都在控制器中描述,基于角度 2 方式数据绑定。

http://cssdeck.com/labs/schedule-of-the-red-hood

每次添加元素时,应以编程方式在 calednar-bar 中插入一个元素,如指令模板中所述:

虽然我不知道如何从控制器链接范围,但从控制器绑定元素插入:

  • 据我所知,我的代码在 DOM 中创建了一个元素,但不使用指令中的模板......我该怎么做?选择的代码结构是否适合这个目标?
0 投票
3 回答
1242 浏览

javascript - Angular - 使用 DIV 元素样式的 2 路数据绑定

我正在使用 Angular 和 jQueryUI 构建一个拖动界面。我想使用 Angular 的原因是,我想要 angularJS 2 路数据绑定,这真的很棒!

这是代码笔 - http://codepen.io/anon/pen/qmuvH/

在代码笔中 - 你会看到一个带有文本的框 - “大家好”(div#layer)。我确实将它的风格与角度绑定 -

并在同一layer.data.toplayer.data.left中添加了两个也具有ng-model的输入字段;因此,当您更改输入字段中的值时 - 它会移动 div 元素。到目前为止,这很好用。

但我还使用 angular 指令中的 jqueryUI 使“大家好”的 div 可拖动。所以你可以拖动那个元素。

我现在想要的是 - 如果我拖动“大家好” div 元素 - 它也会更新layer.data.leftlayer.data.top。所以这也会改变输入字段中的值。我怎样才能做到这一点?