WPF DataGrid 操作列 类似 LinkButton

WPF中没有类似LinkButton,所以只有运用Button及样式来实现LinkButton。

DataGrid 操作列 实现 多个类似LinkButton按钮:

具体实现代码如下:

<DataGrid Name="dgData" IsReadOnly="true" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="操作">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Button Name="btnInput" Content="填单" Cursor="Hand" Click="btnInput_Click" Margin="5,0,5,0">
                            <Button.Template>
                                <ControlTemplate TargetType="Button">
                                    <TextBlock TextDecorations="Underline" Name="btnInput" >
                                            <ContentPresenter />
                                    </TextBlock>
                                </ControlTemplate>
                            </Button.Template>
                            <Button.Style>
                                <Style TargetType="Button">
                                    <Setter Property="Foreground" Value="Blue" />
                                    <Style.Triggers>
                                        <Trigger Property="IsMouseOver" Value="true">
                                            <Setter Property="Foreground" Value="Red" />
                                        </Trigger>
                                    </Style.Triggers>
                                </Style>
                            </Button.Style>
                        </Button>
                        <Button  Name="btnCancel" Content="取消" Cursor="Hand" Click="btnCancel_Click" Margin="5,0,5,0">
                            <Button.Template>
                                <ControlTemplate TargetType="Button">
                                    <TextBlock TextDecorations="Underline" Name="btnCancel" >
                                    <ContentPresenter />
                                    </TextBlock>
                                </ControlTemplate>
                            </Button.Template>
                            <Button.Style>
                                <Style TargetType="Button">
                                    <Setter Property="Foreground" Value="Blue" />
                                    <Style.Triggers>
                                        <Trigger Property="IsMouseOver" Value="true">
                                            <Setter Property="Foreground" Value="Red" />
                                        </Trigger>
                                    </Style.Triggers>
                                </Style>
                            </Button.Style>
                        </Button>
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

前台代码

private void btnInput_Click(object sender, RoutedEventArgs e)
{
    DataRowView drv = this.dgData.CurrentItem as DataRowView;
    if (drv != null)
    {
        string ID = drv.Row["ID"].ToString();
    }
}

private void btnCancel_Click(object sender, RoutedEventArgs e)
{
    DataRowView drv = this.dgData.CurrentItem as DataRowView;
    if (drv != null)
    {
        string ID = drv.Row["ID"].ToString();
    }
}

后台代码

刚开始接触WPF,如有不妥之处望指正。

时间: 2024-08-24 22:52:02

WPF DataGrid 操作列 类似 LinkButton的相关文章

WPF DataGrid某列使用多绑定后该列排序失效,列上加入 SortMemberPath 设置即可.

WPF DataGrid某列使用多绑定后该列排序失效 2011-07-14 10:59hdongq | 浏览 1031 次  悬赏:20 在wpf的datagrid中某一列使用了多绑定,但是该列排序失效,就是点击他的列表头无法进行排序了.xaml如下:<DataGridTextColumn Width="100" Header="{res:Localize Flexem.Studio.HMIControls.AddressLabel.DataType}">

WPF DATAGrid 空白列 后台绑定列 处理

原文:WPF DATAGrid 空白列 后台绑定列 处理 AutoGenerateColumns <DataGrid x:Name="dataGrid" Margin="10,10,0,0" RowHeaderStyle="{DynamicResource DataGridRowHeaderStyle1}" > <DataGrid.Columns> <DataGridTextColumn Header="姓

WPF DataGrid DataGridTemplateColumn 列头checkbox如何在代码中取消选择

0 登录进行投票 <DataGrid Name="DG">                <DataGrid.Columns>                    <DataGridTemplateColumn Width="70">                        <DataGridTemplateColumn.HeaderTemplate>                            &l

C# WPF DataGrid 隔行变色及内容居中对齐

C# WPF DataGrid 隔行变色及内容居中对齐. dqzww NET学习0 先看效果: 前台XAML代码: <!--引入样式文件--> <Window.Resources>        <ResourceDictionary>            <ResourceDictionary.MergedDictionaries>                <ResourceDictionary  Source="/Css/Data

编写 WPF DataGrid 列模板,实现更好的用户体验

Julie Lerman 下载代码示例 最近我在为一个客户做一些 Windows Presentation Foundation (WPF) 方面的工作. 虽然我提倡使用第三方工具,但有时也会避免使用这些工具,这样做是为了体验那些坚持使用 Visual Studio 安装附带工具的开发人员会面临什么样的难题. 祝我好运吧!我们来研究一下 WPF DataGrid. 即便有 Web 搜索的帮助和来自在线论坛的建议,仍然有一些用户体验问题花了我几天时间才解决. 将 DataGrid 列分解为成对的互

WPF DataGrid绑定一个组合列

WPF DataGrid绑定一个组合列 前台: <Page.Resources>        <local:InfoConverter x:Key="converter"></local:InfoConverter>    </Page.Resources> <DataGridTextColumn>                        <DataGridTextColumn.Binding>      

【转】WPF DataGrid 获取选中的当前行某列值

方法一:DataRowView mySelectedElement = (DataRowView)dataGrid1.SelectedItem; string result = mySelectedElement.Row[0]ToString(); 方法二:var a = this.dataGrid1.SelectedItem; var b = a as DataRowView;string result = b.Row[0].ToString(); [转]WPF DataGrid 获取选中的当

WPF Datagrid 动态生成列 并绑定数据

原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用  可以用ObservableCollection集合代表 动态创建属性 WPF 动态生成对象属性 (dynamic) ObservableCollection<NameList> listName = new ObservableCollection<NameList>(); privat

WPF Datagrid 控制 第一行和第一列之间的空白

原文:WPF Datagrid 控制 第一行和第一列之间的空白 这个位置就是 这里 我们更改 DataGridControltemplate 模板 看树形结构 里面是一个BUtton 功能是全选 能找到了 那就直接改掉就可以 <ControlTemplate x:Key="DataGridControlTemplate1" TargetType="{x:Type DataGrid}"> <Border BorderBrush="{Temp