好吧、其实我这是win8里遇到的。
先说说我要做的事情:
我给一个listview的ItemsSource绑定值,然后给它的selectedIndex指定一个数。
我用的mvvmLight做的,在vm中先给listView的ItemsSource绑定值,然后给他的selectedIndex也绑个值。
ok,问题出来了!我发现他这个值的绑定并不是按顺序进行的,比如我本来是先绑的ItemsSource然后绑的selectedIndex,结果总是报异常、大致内容是说我的selectedIndex越界了,也就是说在listview的数据源绑定完成前它就开始绑定selectedindex了。我尝试在给selectedIndex绑定值前用await Task.Delay(300)这种方式延迟了下,然后就没有异常程序正常执行了!
我想问的是,有没有什么方法获取或设置绑定的顺序?又或者有什么方式让绑定按我预想的顺序来进行呢?
------解决方案--------------------
这主要是你 ItemSource 还没加载完 要加载完再去执行SelectIndex 或者直接绑定SelectValue 来控制显示值
------解决方案--------------------
值类型直接赋值,引用类型挨个成员赋值