Silverlight-DataGrid 樣本

來源:互聯網
上載者:User
<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 { get; set; }
            public int Width { get; set; }
            public int Height { get; set; }
            public string Source { get; set; }
            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(1, 100, 50, "icon/btnNew.jpg"));
            list.Add(new Model(2, 50, 100, "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(1, 100, 50, "icon/btnNew.jpg"));
            list.Add(new Model(2, 50, 100, "icon/btnOpen.jpg"));
            list.Add(new Model(3, 50, 100, "icon/btnOpen.jpg"));

            dgList.ItemsSource = list;
        }
        private void BindNew2()
        {
            list.Clear();
            list.Add(new Model(1, 100, 50, "icon/btnNew.jpg"));
            list.Add(new Model(2, 50, 100, "icon/btnOpen.jpg"));

            dgList.ItemsSource = list;
        }
    }
}

 

說明: 樣本所需圖片自己添加

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.