WPF,本地设置值不能清除绑定?

问题描述

<Windowx:Class="WPF2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPF2"mc:Ignorable="d"Title="MainWindow"Height="350"Width="525"><Grid><TextBoxx:Name="textBox"HorizontalAlignment="Left"Height="23"Margin="136,83,0,0"TextWrapping="Wrap"Text="{BindingElementName=button,Path=Content,UpdateSourceTrigger=PropertyChanged}"VerticalAlignment="Top"Width="120"/><Buttonx:Name="button"Content="Button"HorizontalAlignment="Left"Margin="155,159,0,0"VerticalAlignment="Top"Width="75"Click="button_Click"/></Grid></Window>

privatevoidbutton_Click(objectsender,RoutedEventArgse){textBox.Text="300";}

上面的代码,TextBox的Text绑定到Button的Content,双向绑定。在Button的点击事件中,本地设置了TextBox的Text值。说的很清楚,如果为先前已具有Binding表达式的属性设置了本地值,则会完全移除Binding。照理说单击Button之后,绑定就应该移除了,可是结果并没有移除,在TextBox中输入任何字符串,Button的Content照样跟着变。你能解释一下吗?

解决方案

本帖最后由 df43r4t 于 2015-11-14 22:44:57 编辑
解决方案二:
有人知道吗?
解决方案三:
原文是localvalue,不是指你这里的Text属性,是DependencyProperty所保存的一个值,可以通过DependencyObject.ClearValue清除
解决方案四:
引用2楼shingoscar的回复:

原文是localvalue,不是指你这里的Text属性,是DependencyProperty所保存的一个值,可以通过DependencyObject.ClearValue清除

如果把上面的双向绑定修改为单向,则本地设置值之后,就会移除绑定诶
解决方案五:
你所谓的单向是什么样子的?
解决方案六:
有人知道吗...........
解决方案七:
有人知道吗????????
解决方案八:
引用

如果为先前已具有Binding表达式的属性设置了本地值,则会完全移除Binding。

我的理解是,在Binding完成前设置了本地值才会移除Binding,你点击按钮事件里设置的,此时页面必定加载完毕了,Bin定必定完成了,完全符合MSDN上说的。
解决方案九:
引用7楼wmy_03的回复:

引用
如果为先前已具有Binding表达式的属性设置了本地值,则会完全移除Binding。

我的理解是,在Binding完成前设置了本地值才会移除Binding,你点击按钮事件里设置的,此时页面必定加载完毕了,Bin定必定完成了,完全符合MSDN上说的。

额忽略以上回复...
解决方案十:
有人知道吗?

时间: 2024-10-24 03:24:19

WPF,本地设置值不能清除绑定?的相关文章

WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter

一.如何从 Datagrid 中获得单元格的内容 DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items.  但是,WPF中的DataGrid 不同于Windows Forms中的 DataGridView. 在DataGrid的Items集合中,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 的容器中:因此,我们不能使用 像DataGrid

wpf datagrid 设置行颜色

问题描述 wpf datagrid 设置行颜色 ** 我是这样设置颜色,主要是验证一数据根据条件给行设置颜色.但是一滚动颜色设置就不对了,行颜色来回跑** DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex); if (rowContainer == null) { dataGrid.UpdateLayout(); dataGrid.ScrollIntoView(da

jtable-JTable设置值,变更背景颜色不成功

问题描述 JTable设置值,变更背景颜色不成功 这个是我jframe起来以后的效果,是一直刷数据的,现在想在其他方法里面对指定的行列修改值,变更下背景颜色,table.setValueAt(100, 1, 2); 这个没有效果,请大神们看一下 哪有问题,谢谢了 解决方案 你要获取指定行列的cellrender,然后对该组件设置背景颜色即可. 如果你要改变值的话,建议可以自定义一个cellrender,然后绑定到当前JTable, 重载对应方法,根据是否有值设置不同背景即可.

js-ie下使用jQuery获取对象并设置值出错,火狐下正常

问题描述 ie下使用jQuery获取对象并设置值出错,火狐下正常 调试时控制台不断输出错误信息: 获取的是input,input是在js中动态添加上的,鼠标移上去就会显示出来 为input绑定了一个"change"事件,但是在事件处理中,在ie下用属性选择器不能获取到对象并报错 求解??? ie9+jquery1.7 解决方案 你的IE是哪个版本的,可以使用高版本试下,如果高版本可以,表示你当前版本不支持这个功能 解决方案二: 换jquery1.9左右的版本试试,jquery2.0版本

combo box-easyUI的combobox设置值的问题

问题描述 easyUI的combobox设置值的问题 easyUI的combobox如何能够在动态的获取数据库的值的同时硬性添加一个固定的下拉选项值,无论数据库的值如何变化,始终有一个固定值在下拉选中 解决方案 增加loadFilter配置,动态添加你的默认项 <input class="easyui-combobox" id="language" name="language" data-options="valueField:

SQLServerException: 没有为参数号 1 设置值。

问题描述 SQLServerException: 没有为参数号 1 设置值. public List getAllNotice(){ Connection con=null; PreparedStatement stm=null; ResultSet rs=null; List list=new ArrayList(); try{ con=ConnectionManager.getConnection(); String sql=""select * from notice where

sqlserverexception-SQLServerException: 没有为参数号 8 设置值

问题描述 SQLServerException: 没有为参数号 8 设置值 public String getAddMessage() { String str=""; Connection con; PreparedStatement sql; try { String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=BookStore"; con=DriverManager.getConnection(uri,

android开发-同一个手机上,如何把手势密码设置信息和用户绑定?

问题描述 同一个手机上,如何把手势密码设置信息和用户绑定? 有的用户设置了手势密码,有的用户没有设置密码,不同用户切换时如何保存这个状态 解决方案 设一个变量设置为true 没设置为false分别处理就是了

编码-sql数据库 没有为参数号 1 设置值。(参数都是给过值的 急!!!)

问题描述 sql数据库 没有为参数号 1 设置值.(参数都是给过值的 急!!!) String sql1="INSERT INTO [wryk].[dbo].[DMSUPPLIER]" + "(consignor_code,consignor_suppliercode,areaCode,Contact,express_money,fax_code,Mobile," + "opcode,partnerType,postal_code,prefecture,r