Silverlight 2.0 中 DataGrid得到模板列中的按钮,并得到所点击的行号和键值

Silverlight 2.0 中 DataGrid得到模板列中的按钮,并得到所点击的行号和键值,第1张

概述通过Tag属性可以设置自定义的数据,使用GetCellContent方法可以到单元格内的控件,所以就可以得到你点击的是哪一行了。点击的 *** 作就很容易了。 下面的是全部的源代码 Page,xaml <UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  

通过Tag属性可以设置自定义的数据,使用GetCellContent方法可以到单元格内的控件,所以就可以得到你点击的是哪一行了。点击的 *** 作就很容易了。

下面的是全部的源代码

Page,xaml

<UserControl xmlns:data="clr-namespace:System.windows.Controls;assembly=System.windows.Controls.Data"     x:Class="DataGrIDSnippets.Page"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"      WIDth="600" Height="auto">   <ScrollVIEwer VerticalScrollbarVisibility="auto" borderThickness="0">     <StackPanel margin="10,10,10">            <data:DataGrID x:name="dataGrID1"        Height="200" margin="0,5,10"       autoGenerateColumns="False" LoadingRow="dataGrID1_LoadingRow">         <data:DataGrID.Columns>           <data:DataGrIDTextColumn  header="序号" WIDth="120"  Binding="{Binding Indexname}" />           <data:DataGrIDTextColumn  header="姓名" WIDth="120"  Binding="{Binding Username}" />           <data:DataGrIDTextColumn  header="地址" WIDth="120"  Binding="{Binding Address}" />           <data:DataGrIDTemplateColumn header="功能按钮"  WIDth="80">             <data:DataGrIDTemplateColumn.CellTemplate>               <DataTemplate>                 <StackPanel OrIEntation="Horizontal">                   <button Content="初始化内容" x:name="button1" Click="button1_Click"  Tag=""></button>                 </StackPanel>               </DataTemplate>             </data:DataGrIDTemplateColumn.CellTemplate>           </data:DataGrIDTemplateColumn>         </data:DataGrID.Columns>       </data:DataGrID>       <TextBlock x:name="msg"></TextBlock>     </StackPanel>   </ScrollVIEwer> </UserControl> Page.xaml.cs

using System; using System.Collections.Generic; using System.windows; using System.windows.Controls; namespace DataGrIDSnippets {   public partial class Page : UserControl   {     public Page()     {       InitializeComponent();       //绑定数据       dataGrID1.ItemsSource = Customer.GetSampleCustomerList();     }     private voID dataGrID1_LoadingRow(object sender, DataGrIDRowEventArgs e)     {              Customer bindData = (Customer)e.Row.DataContext;        button btn = dataGrID1.Columns[3].GetCellContent(e.Row).Findname("button1"as button;        btn.Content = bindData.Username;        btn.Tag = bindData.Indexname + "," + e.Row.GetIndex();     }     private voID button1_Click(object sender, RoutedEventArgs e)     {            button b = sender as button;       string[] t = b.Tag.ToString().Split(',');       msg.Text = "你选择的值是:" + t[0] + " 是 DataGrID 的第 " + t[1] + " 行";     }   }   /// <summary>   /// 数据对象   /// </summary>   public class Customer   {     public Int32 Indexname { getset; }     public String Username { getset; }     public String Address { getset; }     public Customer(Int32 indexname, String username, String address)     {       this.Indexname = indexname;       this.Username = username;       this.Address = address;     }     public static List<Customer> GetSampleCustomerList()     {       //示例数据       List<Customer> data = new List<Customer>();       for(int i = 0;i<10;i++)       {         data.Add(new Customer(i*i, "孟宪会之" + i.ToString(), "地址之" + i.ToString()));       }           return data;     }   } }

本文基于Silverlight 2.0正式版。

总结

以上是内存溢出为你收集整理的Silverlight 2.0 中 DataGrid得到模板列中的按钮,并得到所点击的行号和键值全部内容,希望文章能够帮你解决Silverlight 2.0 中 DataGrid得到模板列中的按钮,并得到所点击的行号和键值所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存