WPF 分别管理ListView列表中每一行数据
来源:互联网 发布:linux 移动非空目录 编辑:程序博客网 时间:2024/06/12 20:59
前段时间在做一个离线下载的时候,要手动点击列表中每一个病人的数据,保存到本地,然后在断网的情况下,仍然可以查看病人的电子病历,医嘱,检验等数据。网上一直没找到资料,就在这里做一个简单的总结。
wpf 这方面首先就是界面代码 直接上代码
<!--列表内容样式-->
<Style TargetType="{x:Type ListViewItem}" x:Key="ListViewItemContainerStylePatientList">
<Setter Property="FontSize" Value="18"/>
<Setter Property="Height" Value="60"/>
<Setter Property="Foreground" Value="#FF555555"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border x:Name="Bd" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" >
<GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" TargetName="Bd" Value="#FFCCCCCC"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<!--隔行变色-->
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ItemsControl.AlternationIndex" Value="1" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#F5F5F5" />
</MultiTrigger>
</Style.Triggers>
</Style>
<!--列头样式定义-->
<Style x:Key="ListViewHeaderPatientList" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<Grid Name="gird" Height="44">
<Grid.Background>
<SolidColorBrush Color="#FF394053"/>
</Grid.Background>
<Border Name="bd" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<!--<Thumb Name="PART_HeaderGripper" Template="{StaticResource ThumbColumnHeaderSpliter}" HorizontalAlignment="Right" Margin="0,0,-1,0"/>-->
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="gird" Property="Background">
<Setter.Value>
<SolidColorBrush Color="#CC536680"/>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="gird" Property="Background">
<Setter.Value>
<SolidColorBrush Color="#99536680"/>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
//上面style只是作为样式,方便运行粘贴。
<ListView Grid.Row="2" x:Name="LVPatients" Margin="36,18,36,0" ItemContainerStyle="{StaticResource ResourceKey=ListViewItemContainerStylePatientList}"
GridViewColumnHeader.Click="LVPatients_Click" SelectionChanged="LVPatients_SelectionChanged" AlternationCount="2"
BorderThickness="0" >
<ListView.View>
<GridView x:Name="pList" ColumnHeaderContainerStyle="{StaticResource ResourceKey=ListViewHeaderPatientList}">
<GridViewColumn Header="姓名" DisplayMemberBinding="{Binding NAME}" Width="100"/>
<GridViewColumn Header="性别" DisplayMemberBinding="{Binding GENDER}" Width="65"/>
<GridViewColumn Header="年龄" DisplayMemberBinding="{Binding AGE}" Width="70"/>
<GridViewColumn Header="住院号/门诊号" DisplayMemberBinding="{Binding PATIENTSNO}" Width="140" />
<GridViewColumn Header="类型" DisplayMemberBinding="{Binding TREATTYPE}" Width="90"/>
<GridViewColumn Header="床号" DisplayMemberBinding="{Binding BEDNO}" Width="80"/>
<GridViewColumn Header="科室" DisplayMemberBinding="{Binding DEPTNAME}" Width="140"/>
<GridViewColumn Header="入院时间" DisplayMemberBinding="{Binding PATIENTSTARTTIME}" Width="215"/>
<GridViewColumn x:Name="GCIN" Header="离线下载" Width="115">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Width="100" Background="Transparent" Height="50" Content="{Binding ISDOWNLOADOFFLINEDATA}" Click="BtnOffLineData_Click" BorderThickness="0" FontSize="16" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
这里面就是需要在 <GridViewColumn>列下面加一个<GridViewColumn.CellTemplate>子模板,然后给一个数据模板 绑定数据
<DataTemplate>
<Button Width="100" Background="Transparent" Height="50" Content="{Binding ISDOWNLOADOFFLINEDATA}" Click="BtnOffLineData_Click" BorderThickness="0" FontSize="16" />
</DataTemplate>
</GridViewColumn.CellTemplate>
这里的点击事件就是分别处理每一行的点击事件 操作数据
//这里就是拿到绑定数据该行对象 继续执行下一步操作
private void BtnOffLineData_Click(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
EntityPatient player = btn.DataContext as EntityPatient;
}
- WPF 分别管理ListView列表中每一行数据
- WPF中listview数据绑定
- SQL中每一行的数据和上一行的数据进行计算
- Android小记:之ListView中 每一行显示不同的布局
- 在listview的每一行item中,显示不同的图片
- Android中ListView实现展示列表数据
- WPF DataGrid列表选中第一行
- DevExpress循环获取每一行数据
- java中修改文件名字,保证文件中每一行数据不重复
- ScrollView中嵌套ListView/GridView:(解决就显示一行数据)
- SqlServer FOR XML PATH 将查询的每一行数据添加到一个字段中
- 【转】C#如何读取txt文件中每一行每一个数据
- 获取每一行中引号中的字符串
- listview每一行显示不一样的控件!已更新,原来的有点儿小问题,会在内容中指明!
- 多个线程异步修改ListView中每一行的控件的样式(颜色,背景等)
- listview每一行显示不一样的控件!已更新,原来的有点儿小问题,会在内容中指明!
- wpf中ListView排序
- WPF中ListView排序
- IOS 网络浅析-(九 NSURLSession代理简介)
- yii2 window下安装 不用composer
- 码农小汪剑指Offer之35-数字在排序数组中出现的次数 暴力 二分查找的运用
- CodeForces 366A:Dima and Guards【水】
- 神器phpstorm功能详解
- WPF 分别管理ListView列表中每一行数据
- 面向对象介绍以及封装
- Andriod 仿支付宝密码输入框
- 多线程之临界区、互斥锁
- 11g单机对dataguard实施
- hdu1160 FatMouse's Speed 【最长下降子序列+输出】
- 基于s3c2440的alsa-lib及alsa-utils成功移植
- 2016年蓝桥杯C语言初赛B组第四题
- 远程工具连接Linux,网卡激活