title author date CreateTime categories
win10 uwp 绑定 OneWay 无法使用
lindexi
2018-08-10 19:16:50 +0800
2018-2-13 17:23:3 +0800
Win10 UWP

有时候使用绑定的 OneWay 方法无法使用,而使用 TwoWay 的方法就可以使用,但是在调试把 OneWay 做了修改又可以使用,那么请看本文。

这里存在的问题就是,在绑定 OneWay 的时候,存在变量的值是一个绑定,不是具体的值,如果发现代码出现这样的错误。那么请你检查一下绑定的变量是否在其他地方有修改,如果有的话,请不要对他进行修改。

假如有一个简单的界面

    <Grid>
<Grid.RowDefinitions>
<RowDefinition Height="60*"/>
<RowDefinition Height="121*"/>
</Grid.RowDefinitions> <Grid Grid.Row="0">
<TextBlock x:Name="Barry" Margin="10,10,10,10" Text="0" VerticalAlignment="Center"></TextBlock>
<Button Margin="10,10,10,10" Content="add" HorizontalAlignment="Right" Click="Button_OnClick"></Button>
</Grid> <Grid Grid.Row="1">
<TextBlock x:Name="Dagmar" Margin="10,10,10,10" Text="{Binding Text,ElementName=Barry,Mode=OneWay}" VerticalAlignment="Center"></TextBlock>
<Button Margin="10,10,10,10" Content="Set" HorizontalAlignment="Right" Click="Dagmar_OnClick"></Button>
</Grid>
</Grid>

后台代码是

        private void Button_OnClick(object sender, RoutedEventArgs e)
{
var n = int.Parse(Barry.Text);
n++;
Barry.Text = n.ToString();
} private void Dagmar_OnClick(object sender, RoutedEventArgs e)
{
Dagmar.Text = "-1";
}

可以看到,在点击第一个按钮时,会增加两个文本,但是点击 Set 按钮时,就会把下面的文本设为-1,之后无论上面的第一个按钮怎么点击,下面的文本都不会跟着变化。

但是可以看到,设置 Mode 是twoway就可以继续绑定,因为在 WPF 有下面的代码,大概就是判断当前是否可以复制,对源进行赋值,如果不可以对源赋值,就清除绑定,给属性赋值。如果可以对源赋值,那么直接对源赋值。实际UWP也一样,但是我没有找到他的源码。

如果使用了属性,遇到oneway错误的问题,需要自己

最新文章

  1. 深入理解客户区尺寸client
  2. 基于Eclipse的Hadoop应用开发环境配置
  3. pandas 数据检索
  4. http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/
  5. 0x00411202指令引用的0x00000000内存该内存不能为read错误,怎么解决
  6. android ndk编译x264开源(用于android的ffmpeg中进行软编码)
  7. python-生成随机字符
  8. Apache-Tomcat 和 Apache-Maven配置
  9. INS-30001 ADMIN口令为空
  10. 【LeetCode】22. Generate Parentheses (I thought I know Python...)
  11. ASP.NETwindows身份验证详细步骤-域验证登录
  12. 高性能mysql(一)
  13. 友盟分享到微信 监听不执行 监听只执行onStart,(onResult,onError,onCancel 不执行)
  14. 关于截取URL地址参数的方法
  15. atom汉化
  16. json和jsonp的使用区别
  17. 八大排序算法之七—堆排序(Heap Sort)
  18. Codeforces Beta Round #27 (Codeforces format, Div. 2)
  19. 主键映射和Hibernate映射
  20. Nodejs学习笔记(一)--- 操作Mysql数据库

热门文章

  1. PHP实现选择排序的方法
  2. 介绍(javascript调试)
  3. 【Leetcode 滑动窗口】顺次数(1291)
  4. RabbitMQ默认端口
  5. Hibernate的DetachedCriteria使用(含Criteria)转载
  6. 解决VS+Qt不生成moc文件问题
  7. IDEA-servlet项目创建web项目
  8. 读取服务器的windows共享。。
  9. python 不定长参数*args
  10. LeetCode91 Decode Ways