日期:2014-05-17  浏览次数:20920 次

WPF,数据绑定为什么不能修改Source

<Grid Name="grid1" HorizontalAlignment="Left" Height="557" VerticalAlignment="Top" Width="483" DataContext="{StaticResource 资源1}">
   <ListBox Name="listbox1" ItemsSource="{Binding}" DisplayMemberPath="Name" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Margin="61,124,0,0"/>
</Grid>


在后台:

Binding binding = BindingOperations.GetBinding(listbox1, ListBox.ItemsSourceProperty);
binding.Source = list;


在后台,为什么不能修改binding的绑定源呢?为什么报错?

------解决方案--------------------
直接设置listbox1.ItemsSource即可啊
------解决方案--------------------
你要实现的东西只要listbox1.ItemsSource = list;
压根没用到绑定,你却乱用绑定,自然会报错。
------解决方案--------------------
楼主真的是很搞笑
别人已经告诉你了正确的用法
偏偏要用一些奇奇怪怪的用法
这就好比 过河别人告诉你有桥可以走直接过去
你偏要在底下挖地道 还往反方向挖
然后说为啥我到不了对面
无语。。。。。。。。。。
------解决方案--------------------
前台不改的情况下,后台要这么写:
listbox1.DataContext = list;

你却去修改Binding的Source属性,如果你想通过Source属性去控制,必须用new Binding()创建新的绑定然后设置到那个属性,绑定设定后是无法修改Source属性的,修改就报错,没有为什么。
------解决方案--------------------
别钻牛角尖