标签: 2-way-object-databinding

ASP.NET中的双向数据绑定

假设我们有一个对象

class Entity
{
    public string ID {get; set;}
    public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我想将属性绑定到页面上的两个文本框,如下所示:

<asp:FormView ID="FormView" runat="server">
  <ItemTemplate>
    <asp:textbox ID="TextId" Text='<%# Bind("ID") %>'/>
    <asp:textbox ID="TextId" Text='<%# Bind("Name") %>'/>
  </ItemTemplate>
</asp:FormView>
Run Code Online (Sandbox Code Playgroud)

然后在代码后面写这个

public EntityObject
{
    get { return ViewState["Entity"] as Entity; }
    set { ViewState["Entity"] = value; }
}

protected override void OnInit(EventArgs e)
{
    if (EntityObject== null)
        EntityObject= new EntityObject();

    FormView.DataSource = new[] { EntityObject };
    FormView.DataBind();
    base.OnInit(e);
}
Run Code Online (Sandbox Code Playgroud)

当我在文本框中输入值时,我希望EntityObject在PostBack之后重新加载页面时在属性中包含这些值,但属性始终为null.

.net c# asp.net data-binding 2-way-object-databinding

6
推荐指数
1
解决办法
9351
查看次数

uploadcare.com的angularjs数据绑定不起作用

我正在尝试将上传脚本集成到我的页面中.我正在使用uploadcare.com.他们提供了一个简单的指令,但我无法让它工作:

https://github.com/uploadcare/angular-uploadcare/blob/master/angular-uploadcare.js
Run Code Online (Sandbox Code Playgroud)

我正在设置ng-model ="test",在我的控制器中我有以下内容:

angular.module('testApp')
  .controller('MyCtrl', function ($scope) {
    $scope.test = "test";
  });
Run Code Online (Sandbox Code Playgroud)

HTML代码看起来像这样:

<uploadcare-widget ng-model="test" data-public-key="xyz" />
Run Code Online (Sandbox Code Playgroud)

当我检查Firebug时,我可以看到该小部件有效:

<input type="hidden" role="uploadcare-uploader" ng-model="test" data-public-key="6e0958899488d61fd5d0" data-crop="1200:630" value="http://www.ucarecdn.com/ca5513da-90f1-40d1-89e7-648237xxxxxx/-/crop/2560x1344/0,128/-/preview/" class="ng-isolate-scope ng-valid">
Run Code Online (Sandbox Code Playgroud)

但是这个输入值永远不会填充回我的"$ scope.test".这是为什么?当我输出$ scope.test时,它仍然显示"test"而不是我的图像路径值.

data-binding 2-way-object-databinding angularjs

6
推荐指数
1
解决办法
257
查看次数

找不到属性'app:vm'的GETTER,其值类型为Boolean

我正在尝试在我的自定义控件中使用本机双向android数据绑定

所以我在xml中有类似的东西

<layout>
<data>
<variable name="item" type="Boolean"/>
</data>
...
<my.control app:vm="@={item}"/>
...
</layout>
Run Code Online (Sandbox Code Playgroud)

请注意,这是关于@={}- 本地双向绑定的问题.


在代码中类似的东西:

class MyControl extends RelativeLayout{
...
@BindingAdapter("app:vm")
public static void setVm(View v, VM vm){...}
}
Run Code Online (Sandbox Code Playgroud)

我的问题 - 我应该如何为我的viewModel定义getter?我没有找到任何关于它的指导.我尝试了不同的方法 - 编写自定义getter,静态getter但错误仍然相同.

java data-binding android 2-way-object-databinding android-databinding

6
推荐指数
1
解决办法
3501
查看次数

使用聚合物1.0在两个聚合物元件之间结合数据

在下面的示例中,如何obj.name<input>字段的变量绑定<test-element2><test-element>


背景:

以下是我的代码.我有两种聚合物元素.test-element将数据绑定到obj.name.test-element2有一个输入字段,由函数观察objChanged.无论我在输入字段中更改了什么值,它都会更改并打印,test-element2但更改不会反映出来test-element.任何人都可以帮助将价值反映到test-element1?我有一个解决方案this.fire("object-change")用于文本更改时,但我正在寻找一个不使用事件监听器的解决方案.

还有一件事是我需要从脚本创建一个元素,它不能在HTML DOM中硬编码.


码:

<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Demo</title>

    <script src="../../bower_components/webcomponentsjs/webcomponents-lite.js"></script>
    <link rel="import" href="../../bower_components/polymer/polymer.html"/>
</head>

<body>
    <dom-module id="test-element">
        <template>
            <div>Hello <span>{{obj.name}}</span></div>
        </template>

        <script>
            TestElement = Polymer({
                is: "test-element",

                properties: {
                    "obj": {
                        type: Object,
                        notify: true
                    }
                },

                observers: [
                    "objChanged(obj.name)"
                ],
                "objChanged": function() {
                    var that = this;
                    console.log("First …
Run Code Online (Sandbox Code Playgroud)

data-binding web-component 2-way-object-databinding polymer polymer-1.0

5
推荐指数
1
解决办法
6650
查看次数

Qt中有2路(双向)地图吗?

Qt中有2路(双向)地图吗?实现一一对应的简单地图。

谢谢

qt dictionary 2-way-object-databinding

5
推荐指数
1
解决办法
1982
查看次数

数据绑定android中的修剪方法

是有可能trim()的方法是在两个方面数据绑定,从XML获取信息时的工作.如果有,怎么样?

android:text='@={contact.contactDetails.name}'
Run Code Online (Sandbox Code Playgroud)

android 2-way-object-databinding android-databinding

5
推荐指数
1
解决办法
461
查看次数

android:enabled属性的双向数据绑定

我试图找出Android中的双向数据绑定库。我想通过更改xml中的android:enabled属性来启用/禁用LinearLayout(以及内部的RelativeLayout)。

XML部分如下所示:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:layout_margin="5dp"
    android:gravity="center"
    android:enabled="@={viewModel.asd}"
    ndroid:onClick="@{()-> viewModel.doSomething()}"
    android:background="@drawable/shortcut_button_label_selector"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:enabled="@={viewModel.asd}"
        android:background="@drawable/shortcut_button_icon_selector">
Run Code Online (Sandbox Code Playgroud)

现在,我要执行此操作的原因是由于这两个选择器(shortcut_button_label_selector和shortcut_button_icon_selector),它们看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_enabled="false"
        android:drawable="@color/grey_300"></item>
    <item
        android:state_enabled="true"
        android:drawable="@color/menubar_background"></item>

</selector>
Run Code Online (Sandbox Code Playgroud)

我希望能够根据View上的enabled属性动态更改背景。之所以选择启用的属性,是因为我在LinearLayout上遇到了onClick事件,需要禁用它(使其不可点击)。我对android:clickable属性有同样的问题。

当我尝试编译它时,出现错误

java.lang.RuntimeException:发现数据绑定错误。**** /数据绑定错误**** msg:在android.widget.LinearLayout上找不到值类型为boolean的属性“ android:enabled”的获取器。

viewModel.asd只是一个公共布尔/ ObservableBoolean,我都试过。

谁能解释这是怎么回事,为什么我会收到错误消息?我可以在View类(布局扩展)中看到isEnabled / setEnabled方法。

我有什么方法可以继续前进,还是必须完全改变?

//编辑:我可能不需要双向绑定。.我不再知道 //编辑继续:它可能需要对ViewModel继承做一些事情:

布局文件具有类型为abMainViewModel的viewModel,但是字段asd是abBaseViewModel(MainViewModel扩展了BaseViewModel)。现在,我想要这样做的是,如果我从扩展BaseViewModel的任何其他视图更新asd字段,它将自动更新enabled属性。

它也不能与Strings ..我猜这是继承的东西

亲切的问候,Marcin

android 2-way-object-databinding android-databinding

5
推荐指数
1
解决办法
4012
查看次数

Vue 2.3组件中的双向绑定

我理解.sync在Vue 2.3中返回的修饰符,并将其用于实现"多选"问题和答案的简单子组件.父组件像这样调用子组件:

<question
  :stem="What is your favourite colour?"
  :options="['Blue', 'No, wait, aaaaargh!']
  :answer.sync="userChoice"
>
Run Code Online (Sandbox Code Playgroud)

父项具有一个字符串数据元素,userChoice用于存储子组件的结果.孩子为选项提供问题和单选按钮.孩子的基本部分看起来像这样(我使用的是Quasar q-radio):

<template>
  <div>
    <h5>{{stem}}</h5>
    <div class="option" v-for="opt in options">
      <label >
        <q-radio v-model="option" :val="opt.val" @input="handleInput"></q-radio>
        {{opt.text}}
      </label>
    </div>
  </div>
</template>

export default {
  props: {
    stem: String,
    options: Array,
    answer: String
  },
  data: () => ({
    option: null
  }),
  methods: {
    handleInput () {
      this.$emit('update:answer', this.option)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了如果父母然后更改userChoice由于应用程序中发生的其他事情的值,孩子不会更新单选按钮.我不得不把这个包含watch在孩子身上:

  watch: {
    answer () …
Run Code Online (Sandbox Code Playgroud)

2-way-object-databinding vue.js vuejs2

5
推荐指数
1
解决办法
553
查看次数

msg:在数据绑定中找不到值为java.lang.String的属性'android:text'的getter?

我试图在edittext中使用数据绑定,在早上它工作正常,但突然得到错误:

****/ data binding error ****msg:Cannot find the getter for attribute 'android:text' with value type java.lang.String on android.widget.EditText. file:/home/itstym/ApkProjects/Reminder/app/src/main/res/layout/activity_main.xml loc:20:4 - 34:40 ****\ data binding error ****
Run Code Online (Sandbox Code Playgroud)

EditText在第20行:4-34:40

 <EditText
        app:error="@{login.errorEmail}"
        android:text="@={login.userEmailAddress}"
        android:hint="Email Address"
        android:id="@+id/email_address"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"/>
Run Code Online (Sandbox Code Playgroud)

查看持有人:

 @Bindable
var userEmailAddress:String = String()
    set(userEmailAddress){
        field=userEmailAddress
        notifyPropertyChanged(R.id.email_address)
        /*to check Email for validation on every character inserted by user*/
        notifyPropertyChanged(BR.errorEmail)
    }
    get() {
    return field
}
Run Code Online (Sandbox Code Playgroud)

什么突然错了?

尝试解决方案:1.使缓存无效并重新启动.2.清理项目和重建项目.

android 2-way-object-databinding kotlin android-databinding two-way-binding

5
推荐指数
1
解决办法
2393
查看次数

如何在android中使用单选按钮的双向数据绑定

我正在尝试使用单选按钮的两种方式数据绑定。它可以通过如下所示的一种方式正常工作,

android:checked="@{registration.gender.equals(Gender.FEMALE.getValue())}"

但我的问题是,我需要在模型中设置所选单选按钮的值。

<?xml version="1.0" encoding="UTF-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools">
   <data>
      <import type="com.callhealth.customer.comman.enums.Gender" />
      <import type="android.text.TextUtils" />
      <import type="java.lang.Integer" />
      <variable name="callback" type="com.callhealth.customer.usermanagement.callback.RegistrationCallback" />
      <variable name="registration" type="com.callhealth.customer.usermanagement.model.request.LoginAndRegistrationRequestModel" />
   </data>
   <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="vertical">
      <android.support.v7.widget.AppCompatTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/label_gender" android:textSize="15sp" />
      <RadioGroup android:id="@+id/gender_group" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:orientation="horizontal">
         <android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:checked="@={registration.gender.equals(Gender.MALE.getValue())}" android:layout_height="wrap_content" android:text="@string/label_male" />
         <android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginStart="20dp" android:checked="@={registration.gender.equals(Gender.FEMALE.getValue())}" android:text="@string/label_female" />
      </RadioGroup>
   </LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

我的模特班

public class LoginAndRegistrationRequestModel extends BaseObservable {

    private Integer gender;

    @Bindable
    public Integer getGender() {
        return …
Run Code Online (Sandbox Code Playgroud)

android 2-way-object-databinding android-databinding

5
推荐指数
2
解决办法
9042
查看次数