wpf笔记
来源:互联网 发布:网络vx是什么意思 编辑:程序博客网 时间:2024/05/17 23:42
button动态弹出ContextMenu上下文菜单
http://www.cnblogs.com/lyghost/archive/2012/11/02/2751584.html
http://wenwen.soso.com/z/q221186332.htm
http://blog.sina.com.cn/s/blog_3e653ee60100ne19.html
http://www.cnblogs.com/chengxingliang/archive/2011/02/14/1954399.html
-------------------------------------------------------------------------------------------------------------------------------------
环境变量: 一边程序在下次启动的时候 可以读取上次启动的时候的配置项。(这样就可以避免使用ini,xml的配置文件了)
IDictionary environment = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
Environment.SetEnvironmentVariable("PMB_CONNSTRS", conns, EnvironmentVariableTarget.Machine);
-------------------------------------------------------------------------------------------------------------------------------------
http://zhidao.baidu.com/question/124595286.html
ComboBox Editing, Sorting, Grouping ListView
http://www.codeproject.com/Articles/29516/ComboBox-Editing-Sorting-Grouping-ListView
下面这套组件 要收费,不过可以对xlsx 进行导入到一个空间中并显示等等功能:ComponentOne Studio for WPF。
EPPlus这个工具是免费的,可以对xlsx进行读取,不需要额外的组件。
--------------------------------------------------------------listview动态绑定列,添加,删除行,滚动到最后一行
http://zhidao.baidu.com/question/124595286.html
http://www.cnblogs.com/whalechen/archive/2010/01/25/1655685.html
http://tech.ddvip.com/2009-02/1234417341108422.html
<Window x:Class="XLSX_Report.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" WindowStartupLocation="CenterScreen" Title="XLSX_Report" Width="800" Height="850" xmlns:lx="clr-namespace:XLSX_Report"> <!--<Window.Resources> <lx:xlsx x:Key="xlsx"/> </Window.Resources>--> <Grid> <Grid.RowDefinitions> <RowDefinition Height="700"/> <RowDefinition Height="100"/> </Grid.RowDefinitions> <ListView Grid.Row="0" Name="BscAndMscListView" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding}" > <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn Header="Operate"> <GridViewColumn.CellTemplate> <DataTemplate> <Button Content="Delete" Tag="{Binding}" Click="Btn_Delete_Click" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> <StackPanel Grid.Row="1" Orientation="Horizontal"> <Button Width="200" Content="Add some" Click="Btn_Add_Click" HorizontalAlignment="Center"/> <Button Width="200" Content="Apply" Click="Btn_Add_Click" HorizontalAlignment="Center"/> </StackPanel> </Grid></Window>
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using System.Data;using System.IO;using OfficeOpenXml;namespace XLSX_Report{ /// <summary> /// Window1.xaml 的交互逻辑 /// </summary> public partial class Window1 : Window { static DataTable resultTable = null; public Window1() { InitializeComponent(); GridView tempGridView = (GridView)this.BscAndMscListView.View; //xlsx xls = (xlsx)this.Resources["xlsx"]; FileStream ffss = new FileStream("POI类型--属性对应配置表_For830.xlsx", FileMode.Open); resultTable = xlsx.ReadByExcelLibrary(ffss); ffss.Close(); //删除第一行文字标题列 //resultTable.Rows.RemoveAt(0); for (int i = 0; i < resultTable.Rows.Count; ) { DataRow dr = resultTable.Rows[i]; string s = Convert.ToString(dr[5]).Trim(); if (s.Equals("")) { resultTable.Rows.RemoveAt(i); } else { i++; } } for (int i = 0; i < resultTable.Columns.Count; i++ ) { //这些不显示 if (i>0 && i != 5 && i < 12) continue; DataColumn col = resultTable.Columns[i]; /******************************************/ GridViewColumn column = new GridViewColumn(); GridViewColumnHeader h = new GridViewColumnHeader(); h.Content = col.ColumnName; h.Tag = "*******"; column.Header = h; DataTemplate dt = new DataTemplate(); FrameworkElementFactory fef = new FrameworkElementFactory(typeof(TextBox)); Binding binding = new Binding(); binding.Path = new PropertyPath(col.ColumnName); fef.SetBinding(TextBox.TextProperty, binding); fef.SetValue(TextBox.BackgroundProperty, Brushes.AliceBlue); //fef.SetValue(TextBox.WidthProperty,20.0); dt.VisualTree = fef; column.CellTemplate = dt; tempGridView.Columns.Add(column); /******************************************/ } this.BscAndMscListView.DataContext = resultTable; } private void Btn_Delete_Click(object sender, RoutedEventArgs e) { DataRowView drv = (sender as Button).DataContext as DataRowView; DataRow dr = drv.Row; resultTable.Rows.Remove(dr); } private void Btn_Add_Click(object sender, RoutedEventArgs e) { DataRow dr = resultTable.NewRow(); resultTable.Rows.Add(); int lastLine = BscAndMscListView.Items.Count - 1; //跑到最后一行中 BscAndMscListView.ScrollIntoView(BscAndMscListView.Items[lastLine]); //设定选中行 BscAndMscListView.SelectedItem = BscAndMscListView.Items[lastLine]; } } public class xlsx : DataTable//System.Collections.ObjectModel.ObservableCollection<DataRow> { public static DataTable ReadByExcelLibrary(Stream xlsStream) { DataTable table = new DataTable(); using (ExcelPackage package = new ExcelPackage(xlsStream)) { //ExcelWorksheet sheet = package.Workbook.Worksheets[1]; ExcelWorksheet sheet=null; foreach (ExcelWorksheet sht in package.Workbook.Worksheets) { string sheetname = sht.Name.Trim(); if (sheetname.Equals("POI类型-属性配置表", StringComparison.CurrentCultureIgnoreCase)) { sheet = sht; break; } } int colCount = sheet.Dimension.End.Column; int rowCount = sheet.Dimension.End.Row; for (ushort j = 1; j <= colCount; j++) { if (sheet.Cells[1, j].Value != null) { table.Columns.Add(new DataColumn(sheet.Cells[1, j].Value.ToString())); } else { table.Columns.Add(""); } } for (ushort i = 1; i <= rowCount; i++) { DataRow row = table.NewRow(); for (ushort j = 1; j <= colCount; j++) { if (sheet.Cells[i, j].Value != null) { row[j - 1] = sheet.Cells[i, j].Value; } else { row[j - 1] = ""; } } table.Rows.Add(row); } } return table; } }}
----------------------------------绑定IsEnabled属性
<DockPanel>
<RadioButton Name="rbtn1" IsChecked="True" GroupName="group1"></RadioButton>
<TextBox Height="50" IsEnabled="{Binding ElementName=rbtn1, Path=IsChecked}"
Background="AliceBlue" AcceptsReturn="True">输入XLSX全路径</TextBox>
</DockPanel>
- WPF 笔记
- WPF笔记
- WPF笔记
- wpf笔记
- WPF笔记
- wpf笔记
- Wpf 笔记
- WPF笔记
- WPF笔记
- wpf笔记--wpf命令库
- wpf学习笔记
- WPF学习笔记1
- WPF学习笔记一
- WPF学习笔记二
- WPF学习笔记--基本知识
- WPF学习笔记
- wpf学习笔记---TextBox
- wpf学习笔记---Button
- 如何让WebBrowser获取单击事件
- 怎么提升淘宝网店的转化率
- 互斥信号量和二进制信号量
- SAP MM MoveMent Type
- 我的新站是如何在一个月内赚了3500元
- wpf笔记
- windows 键盘消息的机制
- 批改HTML文件的简单程序之经验总结
- mysql中select count()效率简析
- 获得系统中某个进程的cpu使用率
- Archie OSG Step By Step③ OSG+VS2010+MFC单文档程序框架构建
- JS可不可以实现:改变地址栏地址而不跳转
- linux下24时区文件对于表
- rdlc 报表第二页没有表头处理