silverlight GridView的SelectedItems绑定处理

silverlight GridView的SelectedItems绑定处理,第1张

概述在gridview中的属性中只有SelectedItem而没有SelectedItems,但是我需要为SelectedItems绑定数据进行 *** 作,该如何去做呢? 我们还可以看到SelectedItems只能读,不能写,又该如何处理呢? 如下是我的解决方式: 写一个behavior重写这个SelectedItems,   public class GridViewSelectedItemsBehav


在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绑定处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存