大年初八,自己又过一年,新的一年,祝园子里面的所有人新年新气象,猪年行大运,给大家拜年了!希望以后能与大家多多交流,入园先给大家送上小小的一份礼物,“动态邦定ListView组件”。
      此组件的功能就是实现实体层与界面显示(ListView)进行动态绑定,这方面的知识园子里面的高手应该都实现过。
首先大家先看看类图

具体的实现代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace Entity
{    

    定义相关委托
定义相关委托

    对象修改通知接口
对象修改通知接口

    包装IListElementWithEvent的DataListViewItem类
包装IListElementWithEvent的DataListViewItem类

    实现显示的DataListView类
实现显示的DataListView类

}

只要在实体层实现IListElementWithEvent与IListWithEvent接口,然后在显示层分别根据需要定义继承DataListView与DataListViewItem的显示类就可以实现动态绑定了。
显示层代码demo如下:
public class CancelInstructionListView : DataListView
        
{
            
public CancelInstructionListView(CancelTask cancelTask)
                : 
base(cancelTask)
            
{
            }


            
protected override DataListViewItem FindViewItem(IListElementWithEvent src)
            
{
                
foreach(CancelInstructionListViewItem x in this.Items)
                
{
                    
if(x.Source == src)
                        
return x;
                }

                
return null;
            }


            
protected override DataListViewItem CreatItem(IListElementWithEvent src)
            
{
                
return new CancelInstructionListViewItem((CancelInstruction)src);
            }

            
public DataListViewItem this[IListElementWithEvent src]
            
{
                
get
                
{
                    
if(FindViewItem(src) != null)
                        
return    FindViewItem(src);
                    
else
                        
return null;
                }

            }

        }


        
public class CancelInstructionListViewItem : DataListViewItem
        
{
            
public CancelInstructionListViewItem(CancelInstruction ins)
                : 
base(ins)
            
{
                
this.source = ins;
            }


            CancelInstruction source;

            
public CancelInstruction Source
            
{
                
get
                
{
                    
return source;
                }

            }

        }

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3