您的位置:首页 > 其它

数据绑定出错的原因

2013-01-10 10:55 330 查看
使用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;
        }


以上是我做的小结,不完善之处还请各位看官多多发表意见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: