Silverlight 数据网格图像

标签 silverlight datagrid

在 silverlight 应用程序中,我有一个数据网格,第一列是图像(请参阅下面我正在使用的代码)

当我单击图像时,我正在捕获 MouseLeftButtonDown 事件,我遇到的问题是,在单击图像时,Datagrid 中的 SelectedIndex 没有改变 因此我不知道点击了哪一行。

<data:DataGridTemplateColumn Width="25">
    <data:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Width="20" Stretch="Fill" Name="Delete"  Source="/Portal;Component/Images/Delete.png" MouseLeftButtonDown="ImageDelete_MouseLeftButtonDown"/>
        </DataTemplate>
    </data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>

最佳答案

这个问题有点老了,所以我不确定你是否有答案,但你可以做的是在图像的'tag'属性中设置某种标识符,你可以使用它来识别行(或者更准确地说是绑定(bind)到该行的对象)点击来自。我假设您正在将某种对象从集合绑定(bind)到行,并且“发送者”在您的事件中属于“图像”类型。

<data:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <Image Width="20" Stretch="Fill" Name="Delete"  Source="/Portal;Component/Images/Delete.png" MouseLeftButtonDown="ImageDelete_MouseLeftButtonDown" Tag="{Binding Id}"/>
    </DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>

现在您可以访问绑定(bind)到单击的行的对象的 id,就像这样......(在 VB 中)
    Private Sub ImageDelete_MouseLeftButtonDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs)
        Dim img As Image = TryCast(sender, Image)
        Dim id As Integer = CInt(img.Tag)
        ' Do stuff with id
    End Sub

在 C# 中:
Private void ImageDelete_MouseLeftButtonDown(System.Object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    Image img = sender as Image;
    int id = Convert.ToInt32(img.Tag);
    // do stuff with id
}

代码在这里

关于Silverlight 数据网格图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2009232/

相关文章:

linq - 匿名 linq 查询 select 的返回类型是什么?发回这些数据的最佳方式是什么?

datagrid - 使用 MVVM 的 DataGrid 中的 ContextMenu 绑定(bind)源

c# - 当搜索框中的字符串为空时,CollectionViewSource 不会填充数据网格

c# - Datagrid 组合框使 relativsource 工作

.net - Silverlight 开发入门

c# - 具有测量/所需尺寸问题的 Silverlight 控件,图像从中间用户控件拉伸(stretch)

silverlight - 如何在 Silverlight 工具包的折线图上制作更小的点?

c# - 如何按工作日的顺序(如日历周)而不是字母顺序(在 C# 中)排序?

c# - 如何使用绑定(bind)更改数据网格文本 block 列的前景

DataGrid 的 WPF Datatrigger 仅更改整行