点完button以后。text已经是张三了。以前的绑定失效了。。Text="{Binding ElementName=slider1, Path=Value}" 

解决方案 »

  1.   

    跟优先级无关,优先级是说本地值、项目样式值、主题样式有优先级,譬如说你给button直接设置content的值会覆盖你在样式里给button的content值.
      

  2.   

    可编辑的绑定方式是TwoWay,只读的绑定方式就是OneWay.
    TextBox默认的绑定就是TwoWay,而TextBlock 默认的是OneWay
    你的例子把TextBlock 的绑定方式设置为Text="{Binding ElementName=slider1, Path=Value,Mode=TwoWay}" 也可以实现的。
      

  3.   

    代码中,我设置了textBlock1为张三,这就是本地值啊,怎么说与优先级无关呢?
    再有,出现我楼上说的那种情况,与TwoWay或OneWay有什么半毛钱的关系呢?
      

  4.   

    代码中,我设置了textBlock1为张三,这就是本地值啊,怎么说与优先级无关呢?
    再有,出现我楼上说的那种情况,与TwoWay或OneWay有什么半毛钱的关系呢?
    1.我表达的意思是针对LZ说的为什么Textblock没效果而Textbox有效果,这跟优先级没关系,确实是默认的绑定模式导致的。
    2.你自己可以翻翻资料看看,或者写个demo测试下,是不是有关系就知道了,你把Textbox的绑定方式设置为oneWay也不会有效果,相反,你把Textblock设置为TwoWay就有效果了。
    3.请不要武断下结论!
      

  5.   

    总的说来,还是与优先级有关系的吧。MSDN上说过啊,如果您使用绑定或资源来设置本地值,则每个值都按照直接设置值的优先级顺序来应用。
      

  6.   

    MSDN上说的:在依赖项属性优先级方面,Binding 表达式等效于本地设置的值。 如果为先前已具有 Binding 表达式的属性设置了本地值,则会完全移除 Binding。 如此说来,上缅的代码中,即便是换成TextBox,本地将Text设置为“张三”之后,也会移除Binding的啊,移除Binding的意思不就是删除绑定了吗
      

  7.   

    MSDN上说的:在依赖项属性优先级方面,Binding 表达式等效于本地设置的值。 如果为先前已具有 Binding 表达式的属性设置了本地值,则会完全移除 Binding。 如此说来,上缅的代码中,即便是换成TextBox,本地将Text设置为“张三”之后,也会移除Binding的啊,移除Binding的意思不就是删除绑定了吗
      

  8.   

    争论的好激烈。不过我觉得 依赖项属性 都具有 “更改通知“功能,这跟优先级没有关系。跟你的BindingMode有关,你不指定你的恶model,它会使用默认模式,也就是单项模式。
      

  9.   

    代码中,我设置了textBlock1为张三,这就是本地值啊,怎么说与优先级无关呢?
    再有,出现我楼上说的那种情况,与TwoWay或OneWay有什么半毛钱的关系呢?
    1.我表达的意思是针对LZ说的为什么Textblock没效果而Textbox有效果,这跟优先级没关系,确实是默认的绑定模式导致的。
    2.你自己可以翻翻资料看看,或者写个demo测试下,是不是有关系就知道了,你把Textbox的绑定方式设置为oneWay也不会有效果,相反,你把Textblock设置为TwoWay就有效果了。
    3.请不要武断下结论!
    顶。
      

  10.   

    清除绑定有几种方式,1.赋值 2.显示调用BindingOperations类的ClearBinding()和ClearAllBindings()方法
    但是赋值的方法只能清除单向绑定,而不能清除双向绑定;而textblock默认单向绑定,textbox默认双向绑定,所以导致了你的demo的结果。
    至于为什么赋值只能清除单向绑定而不能清除双向绑定,我也不知道微软要这么做了