Silverlight-DataGrid 示例

本文介绍如何使用Silverlight创建一个自定义的数据网格控件,并展示了如何实现图片展示、数据绑定和交互功能。
<UserControl xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  x:Class="Silverlight.Common.uc_DataGrid"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable
="d"
    d:DesignHeight
="300" d:DesignWidth="400" >

    
<Grid x:Name="LayoutRoot" Background="White">
        
<my:DataGrid Height="300" HorizontalAlignment="Left" Name="dgList" Width="600">
            
<my:DataGrid.Columns>
                
<my:DataGridTextColumn Header="ID" Binding="{Binding ID}" Width="100"></my:DataGridTextColumn>
                    
<my:DataGridTemplateColumn Header="分类">
                        
<my:DataGridTemplateColumn.CellTemplate>
                        
<DataTemplate>
                            
<StackPanel Orientation="Horizontal">
                                
<Image Width="{Binding Width}" Height="{Binding Height}" Source="{Binding Source}" MouseLeftButtonDown="Image_MouseLeftButtonDown"></Image>
                            
</StackPanel>
                        
</DataTemplate>
                        
</my:DataGridTemplateColumn.CellTemplate>
                    
</my:DataGridTemplateColumn>
            
</my:DataGrid.Columns>
        
</my:DataGrid>
    
</Grid>
</UserControl>

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Silverlight.Common
{
    
public partial class uc_DataGrid : UserControl
    {
        
public uc_DataGrid()
        {
            InitializeComponent();
            Bind();
        }
        List
<Model> list = new List<Model>();
        
public class Model
        {
            
public int ID { getset; }
            
public int Width { getset; }
            
public int Height { getset; }
            
public string Source { getset; }
            
public Model() { }
            
public Model(int _ID, int _Width, int _Height, string _Source)
            {
                ID 
= _ID;
                Width 
= _Width;
                Height 
= _Height;
                Source 
= _Source;
            }
        }
        
private void Bind()
        {
            list.Clear();
            list.Add(
new Model(110050"icon/btnNew.jpg"));
            list.Add(
new Model(250100"icon/btnOpen.jpg"));

            dgList.ItemsSource 
= list;
        }

        
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Model model 
= dgList.SelectedItem as Model;
            
//MessageBox.Show(model.ID.ToString());
            if (model.ID == 1)
            {
                BindNew();
            }
            
if (model.ID == 2)
            {
                BindNew2();
            }

        }
        
private void BindNew()
        {
            list.Clear();
            list.Add(
new Model(110050"icon/btnNew.jpg"));
            list.Add(
new Model(250100"icon/btnOpen.jpg"));
            list.Add(
new Model(350100"icon/btnOpen.jpg"));

            dgList.ItemsSource 
= list;
        }
        
private void BindNew2()
        {
            list.Clear();
            list.Add(
new Model(110050"icon/btnNew.jpg"));
            list.Add(
new Model(250100"icon/btnOpen.jpg"));

            dgList.ItemsSource 
= list;
        }
    }
}

 

说明: 示例所需图片自己添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值