数据绑定出错的原因

来源:互联网 发布:边际效应递减规律知乎 编辑:程序博客网 时间:2024/06/05 17:11


使用XAML最经常碰到的问题是数据绑定出错。在经历了无数次绑定出错后我终于做了个决定,把调试出错的步骤给整理一下,免得下次再错的时候仍然不知道怎么办委屈

闲话少说,以下步骤请大家参考:

1)核对变量信息是否正确。虽然是非常简单的一步,但如果你的xaml习惯手写而不是复制的话,最好还是做一下这个检查,免得后面查错查了好久都找不到这个最简单的原因。

2)查看绑定源/视觉树的DataContext属性。大多数的绑定错误都是由这个问题引起的,尤其碰到使用列表控件或引用Resource的时候更应当仔细检查。vs2010中可在xaml.cs中输入下面的式子查看确定按钮的DataContext

  var d =okButton.DataContext as MyViewModel;
或是使用Snoop等第三方控件查看

3)如果绑定仍然不正确的话,那么很有可能是绑定的数据项出了错误。在xaml.cs中利用VS的智能感知查看绑定的数据项是否存在: 

var d =ok.DataContext as MyViewModel;int i=d.SelectedItem.Config.type   //查看type是否存在
4)如果使用了数据触发器,还应当查看DataTrigger的绑定是否设置正确的值。同样,这里我还是比较习惯在程序跑起来以后在xaml.cs文件中查看绑定的数据项是否正确。

 如

                <DataTrigger Binding="{Binding Path=SelectedItem.Config.type}" Value="0" >                    <Setter Property="Source" Value="..\Images\1.jpg"/>                </DataTrigger>


   private void dataGrid1_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)        {            var d = okButton.DataContext as NewSpectrumSettingViewModel;            int i = s.SelectedItem.Config.type;        }    

以上是我做的小结,不完善之处还请各位看官多多发表意见。
原创粉丝点击