在grIDvIEw中的属性中只有SelectedItem而没有SelectedItems,但是我需要为SelectedItems绑定数据进行 *** 作,该如何去做呢?
我们还可以看到SelectedItems只能读,不能写,又该如何处理呢?
如下是我的解决方式:
写一个behavior重写这个SelectedItems,
public class GrIDVIEwSelectedItemsBehavior : Behavior<RadGrIDVIEw> { public INotifyCollectionChanged SelectedItems { get { return (INotifyCollectionChanged)GetValue(SelectedItemsProperty); } set { SetValue(SelectedItemsProperty,value); } } public static Readonly DependencyProperty SelectedItemsProperty = DependencyProperty.Register("SelectedItems",typeof(INotifyCollectionChanged),typeof(GrIDVIEwSelectedItemsBehavior),new PropertyMetadata(OnSelectedItemsPropertyChanged)); private RadGrIDVIEw GrIDVIEw { get { return Associatedobject as RadGrIDVIEw; } } private static voID OnSelectedItemsPropertyChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) { GrIDVIEwSelectedItemsBehavior behavior = (GrIDVIEwSelectedItemsBehavior)d; var collection = e.NewValue as INotifyCollectionChanged; if (collection != null) { behavior.UnsubscribeFromEvents(); behavior.Transfer(behavior.SelectedItems as IList,behavior.GrIDVIEw.SelectedItems); behavior.SubscribetoEvents(); } } protected overrIDe voID OnAttached() { base.OnAttached(); GrIDVIEw.SelectedItems.CollectionChanged += GrIDVIEwSelectedItems_CollectionChanged; } private voID GrIDVIEwSelectedItems_CollectionChanged(object sender,NotifyCollectionChangedEventArgs e) { UnsubscribeFromEvents(); Transfer(GrIDVIEw.SelectedItems,SelectedItems as IList); SubscribetoEvents(); } public voID Transfer(IList source,IList target) { if (source == null || target == null) return; target.Clear(); foreach (var o in source) { target.Add(o); } } private voID SubscribetoEvents() { GrIDVIEw.SelectedItems.CollectionChanged += GrIDVIEwSelectedItems_CollectionChanged; } private voID UnsubscribeFromEvents() { GrIDVIEw.SelectedItems.CollectionChanged -= GrIDVIEwSelectedItems_CollectionChanged; } }
界面调用:
<telerik:RadGrIDVIEw GrID.Row="1">
<i:Interaction.Behaviors>
<plm:GrIDVIEwSelectedItemsBehavior SelectedItems="{Binding MyList}" />
</i:Interaction.Behaviors>
</telerik:RadGrIDVIEw》
总结以上是内存溢出为你收集整理的silverlight GridView的SelectedItems绑定处理全部内容,希望文章能够帮你解决silverlight GridView的SelectedItems绑定处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)