问题标签 [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.
c# - 转换器从 DataGrid 而不是绑定对象获取值?
我正在利用绑定到数据对象的 DataGridTextColumn 来显示应用程序中的各种测量值。我正在尝试实现一个允许以不同单位显示测量值的功能,并认为绑定中的转换器可能是我的最佳选择。
这适用于大多数应用程序,但我在 DataGrid 中有另一个字段,用户可以在其中编辑字段的值。在这种情况下,我有一个双向数据绑定,它将用户输入的值(比如说华氏度)转换回数据对象的默认单位(摄氏度)。
我希望转换器从数据对象中检索摄氏度的值,进行转换,然后将此值(以华氏度为单位)发送到 DataGridTextColumn。但是,在数据对象上设置值并通知 PropertyChanged 后,不会调用该属性的“get”方法。相反,Convert 似乎是从 DataGridTextColumn 获取用户输入的值(以华氏度为单位)。
这是正常行为吗?如果是这样,有没有办法强制 Convert 始终返回数据对象的值?
一些片段可以提供帮助:
转换器方法:
由于 ConvertBack 中可用的信息有限,我在 setter 中进行了“ConvertBack”转换:
编辑:这是一个演示问题的示例项目的链接。左列是用户可编辑的,表示用户查看/编辑的数据。右列显示用户进行更改时实际存储的基础值(此值不应更改)。
如果您修改左列中的值,并在同一行中使用“制表符”或选择不同的列,您可以看到值与您输入的值不同。但是当行失去焦点时它会变回来。通过设置断点,您可以看到当单元格本身失去焦点时,使用 DependencyProperty.UnsetValue 调用 Convert 方法,然后调用 Unit 的 get 方法,然后再次使用 DataGrid 中的值调用 Convert 方法。
c# - 使用数据绑定从 Datgrid 中的选定行中检索项目
我有一个Datagrid
通过 a绑定到 a 的列表Bindinglist
,我需要一个完整的 2 路数据绑定
Item
如果我知道网格中的行,我现在不知道如何访问。
例如,编辑后我想验证该项目,但只有当我获得对已编辑项目的引用时才能这样做。
或者,如果我知道网格中的关联行,我如何检索列表中的项目。
非常感谢您的帮助
wpf - WPF RadioButton 已知问题:为什么旧的属性值在属性更改后似乎仍然具有约束力
谢谢。我希望我可以上传整个解决方案,因为我在打开这个问题之前已经准备好了。但我没有找到如何。我将在此处尽可能复制所有代码。
问题是:我认为这是 WPF 中一个容易复制的问题。我做了一个简单的代码版本来清楚地解释我的问题。示例中的容器“TwoPersons”有两个“Person”类实例。“当前”属性将是填充人员详细信息的详细信息面板的数据上下文。我可以使用 Current setter 方法在不同的版本之间跳转。我可以看到细节发生了相应的变化。问题是在切换和填充当前人的过程中,UI 控制更改(例如将男性更改为女性),然后更改会影响它绑定的 PREVIOUS 项目。persion 实例将被意外修改。在新实例绑定后,以前的实例似乎仍然与视图有联系。我怎样才能避免这种情况。任何帮助将不胜感激。
==================================================== =======================
这是 MainWindow.xaml.cs
两个人的容器:
人物类:
主窗口 xaml
backbone.js - BackboneJS+UnderscoreJS如何将el绑定回模型
我是backscore.js + underscore.js的初学者。对不起,如果这里已经是一个答案。也许我只是没有正确的问题。
我有一个简单的模板:
下一个视图:
和模型:
在我运行渲染后一切正常,但是在我开始编辑表单中的数据(例如更改复选框的状态)后,视图中的模型没有改变。如何以正确的方式改变它。
我知道我可以在视图中的每个输入更改上添加事件,并手动更改整个模型的每个属性的值。在这种情况下,最佳做法是什么?
非常感谢任何提前!
actionscript-3 - 双向数据绑定问题
这是我的组件的代码:
Box
类有两个继承者:TextBox
和ImageBox
. 所有这些类都是[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。我做错了什么?
javascript - Ember 双向绑定不起作用?
我对 Ember 比较陌生,到目前为止我真的很喜欢它。我正在研究他们文档中的一些示例代码,但似乎无法获得我应该获得的 2 路有界值?我从他们提供的示例中借用了代码,我没有错误。
真的很简单,给妻子定薪水,给丈夫定薪水,再给丈夫定薪水,妻子的薪水应该反映变化,但事实并非如此。
这是我的 jsbin:http: //jsbin.com/asufEvaB/5/
谢谢你的帮助 :)
angularjs - 如何将表单中的每个元素绑定到angularjs中的对象数组中的项目
我正在尝试将表单中的每个元素绑定到对象数组中的一个元素。有什么好方法可以做到这一点?我是否需要创建客户端模型然后对其进行序列化?下面是关于我想要实现的目标的 jsfiddle
谢谢
javascript - 通过指令将元素添加到 DOM 并从控制器(angular.js)绑定范围观察
这是一个小应用程序,您可以在其中添加、编辑和删除项目 - 所有这些都在控制器中描述,基于角度 2 方式数据绑定。
http://cssdeck.com/labs/schedule-of-the-red-hood
每次添加元素时,应以编程方式在 calednar-bar 中插入一个元素,如指令模板中所述:
虽然我不知道如何从控制器链接范围,但从控制器绑定元素插入:
- 据我所知,我的代码在 DOM 中创建了一个元素,但不使用指令中的模板......我该怎么做?选择的代码结构是否适合这个目标?
javascript - Angular - 使用 DIV 元素样式的 2 路数据绑定
我正在使用 Angular 和 jQueryUI 构建一个拖动界面。我想使用 Angular 的原因是,我想要 angularJS 2 路数据绑定,这真的很棒!
这是代码笔 - http://codepen.io/anon/pen/qmuvH/
在代码笔中 - 你会看到一个带有文本的框 - “大家好”(div#layer)。我确实将它的风格与角度绑定 -
并在同一layer.data.top和layer.data.left中添加了两个也具有ng-model的输入字段;因此,当您更改输入字段中的值时 - 它会移动 div 元素。到目前为止,这很好用。
但我还使用 angular 指令中的 jqueryUI 使“大家好”的 div 可拖动。所以你可以拖动那个元素。
我现在想要的是 - 如果我拖动“大家好” div 元素 - 它也会更新layer.data.left和layer.data.top。所以这也会改变输入字段中的值。我怎样才能做到这一点?