问题描述
<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上说的。
额忽略以上回复...
解决方案十:
有人知道吗?