WPF:解决数据绑定时不更新数据的问题

当用户在窗体控件中修改数据时,如果此时用户点击其它窗体会出现数据没有更新的情况。

这是由于数据绑定默认是通过失去焦点来提交数据的。可通过属性变更方法来更新数据:

<TextBox.Text>
    <Binding Path="MyProperty" UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>

或者仅使用代码调用UpdateSource强制更新数据:

<TextBox Name="itemNameTextBox"
         Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" />
// itemNameTextBox is an instance of a TextBox
BindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty);
be.UpdateSource();

原文地址:https://www.cnblogs.com/xpvincent/p/9565552.html

时间: 2024-10-28 22:30:21

WPF:解决数据绑定时不更新数据的问题的相关文章

FragmentPageAdapter切换时无法更新数据问题解析

在一个 Android 应用中,我们可以使用 FragmentPageAdapter 来处理多 Fragment 页面的横向滑动.但是当 Fragment 对应的数据集发生改变时,我们都希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我们使用 notifyDataSetChanged() 后,我们会发现这个方法不会生效.那为什么会这样呢,之前遇到了相同的问题一直没法解决,在网上给出的乱七八糟的

VUE.JS 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property &#39;xxxx&#39; of undefined 的解决办法

正常情况下在data里面都有做了定义 在函数里面进行赋值 这时候你运行时会发现,数据可以请求到,但是会报错 TypeError: Cannot set property 'listgroup' of undefined 主要原因是: 在 then的内部不能使用Vue的实例化的this, 因为在内部 this 没有被绑定.可以看下 Stackoverflow 的解释: 解决办法: 1.用ES6箭头函数,箭头方法可以和父方法共享变量 2.在请求axios外面定义一下 var that=this 问题

Mysql更新数据时,报 “You can&#39;t specify target table &#39;message &#39; for update in FROM clause” 解决办法

报错的SQL为: delete from message where id not in  (select min(id) as id from message group by content); 报错信息的中文意思为:不能在FROM子句中更新  message表数据,原因是 "不能在从本表中查出数据范围后,然后直接更新本表", 解决方法思路是,让数据库认为,你查出的数据范围,是不从本表中查出来的,实现步骤如下: 1.用as,给查出的数据表,设置别名为a,即 (select min(

VUE - 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property &#39;xxxx&#39; of undefined 的解决办法

created() { var that=this axios.get('http://jsonplaceholder.typicode.com/todos') .then(function (res) { // handle success // console.log(res); that.todos = res.data }) .catch(function (error) { // handle error console.log(error); }) .finally(function

thinkphp 的save()不能更新数据解决办法

用save()方法始终更新不了数据,又不显示明确的错误信息,找了好久才在手册里看到一句至关重要的话: 为了保证数据库的安全,避免出错更新整个数据表,如果没有任何更新条件,数据对象本身也不包含主键字段的话,save方法不会更新任何数据库的记录. 因此在使用create自动更新数据时,要在表单添加一个隐藏域,其值为数据表的id值! thinkphp 的save()不能更新数据解决办法,布布扣,bubuko.com

CodeIgniter 更新和插入数据库时的进行数据转义

一.解决方法: 1 插入数据时,使用CodeIgniterd的Active Record模式的set方法,set()接受可选的第三个参数$escape,如果此参数被设置为FALSE,就可以阻止数据被转义,该参数的默认值是TRUE 2 更新数据时,所有的值会被自动转义,以便生成安全的查询 二.示例: 示例1: $this->db->set('name', $name); $this->db->insert('mytable'); 示例2: $this->db->set('

SQL中使用UPDATE更新数据时一定要记得WHERE子句

我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 mysql 中,我们可以设置sql_safe_updates 这个自带的参数来解决,,当该参数开启的情况下,我们必须在 UPDATE 语句后携带 WHERE 条件,否则就会报错.set sql_safe_updates=1; 表示开启该参数.下面是开启sql_safe_updates参数后不带  WHE

SQL 更新数据时触发器造成的性能问题

有时候,我们更新数据时,发现更新的时间很长,一般我们会想到查询的性能很慢,是索引引起的.但有时候不一定,触发器也会造成性能问题. 我们需要在更新数据时,先禁用触发器,然后再恢复 1 --禁用触发器 2 DISABLE TRIGGER 触发器名称 ON 表 3 --启用触发器 4 ENABLE TRIGGER 触发器名称 ON 表

数据库更新数据时的传值问题

如果数据库中有多列值时,但是不定个数更新是需要采取“先通过查找数据库中的所有数据保存为一个model类,再给相应要改变的值复制,其他的更新的值保持原有数据不变” 比如:DAL(数据访问层) /// <summary> /// 更新数据,虽然有的时候只是更新某个值,其他的值可以原样更新.在更新之前先要查询一下原有的数据,以便于不更新没必要的更新 /// </summary> /// <param name="model"></param>