MicroModel使用Gidview显示数据
来源:互联网 发布:淘宝代办营业执照骗局 编辑:程序博客网 时间:2024/06/05 06:50
效果图:
代码:
页面:
<navigation:Page x:Class="mircomodels3.MetricNode.MetricNode" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:vm="clr-namespace:mircomodels3.MetricNode" xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:Prism="clr-namespace:Microsoft.Practices.Composite.Presentation.Commands;assembly=Microsoft.Practices.Composite.Presentation" xmlns:Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL4" xmlns:ViewModel="clr-namespace:mircomodels3.ViewModel" xmlns:MetricNode="clr-namespace:mircomodels3.MetricNode" xmlns:invoke="clr-namespace:mircomodels3" xmlns:NodeModel="clr-namespace:mircomodels3.MetricNode.appClass" Title="MetricNode Page"> <!--<telerik:RadWindow.Resources> <Datablocks:BinaryToImageConverter x:Key="binaryToImageConverter" /> <Popup:TypeToNameConverter x:Key="typeToNameConverter" /> </telerik:RadWindow.Resources>--> <!--<UserControl.Resources> < Command:EventToCommand Prism:Click.Command="{Binding Path=Save}" x:Key="Import" /> </UserControl.Resources>--> <UserControl.Resources> <NodeModel:DataContextProxy x:Key="dataContextProxy" DataContext="{Binding Object}"/> </UserControl.Resources> <Grid x:Name="LayoutRoot" DataContext="{Binding Object}"> <i:Interaction.Triggers> <i:EventTrigger EventName ="Loaded"> <i:InvokeCommandAction Command="{Binding Path=LoadAll}"></i:InvokeCommandAction> </i:EventTrigger> </i:Interaction.Triggers> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <telerik:RadComboBox Name="rcbType" Width="200" HorizontalAlignment="Left"> <telerik:RadComboBoxItem Content="MetricName"/> <telerik:RadComboBoxItem Content="ParameterType"/> <i:Interaction.Triggers> <i:EventTrigger EventName ="SelectionChanged"> <i:InvokeCommandAction Command="{Binding Path=RcbTypeSelectionChanged}" CommandParameter="{Binding ElementName=rcbType}"></i:InvokeCommandAction> </i:EventTrigger> </i:Interaction.Triggers> </telerik:RadComboBox> <telerik:RadGridView Name="radGridView1" Grid.Row="1" AutoGenerateColumns="False" CanUserFreezeColumns="False" ShowGroupPanel="False" SelectionMode="Single"> <i:Interaction.Triggers> <i:EventTrigger EventName ="BeginningEdit"> <i:InvokeCommandAction Command="{Binding Path=RadGridViewBeginningEdit}" CommandParameter="{Binding ElementName=radGridView1}"></i:InvokeCommandAction> </i:EventTrigger> <i:EventTrigger EventName ="SelectionChanged"> <i:InvokeCommandAction Command="{Binding Path=RadGridViewSelectionChanged}" CommandParameter="{Binding ElementName=radGridView1}"></i:InvokeCommandAction> </i:EventTrigger> </i:Interaction.Triggers> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="UserName" Width="*" DataMemberBinding="{Binding Path=UserName}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="RegExpName" Width="*" DataMemberBinding="{Binding Path=Regex}"/> <telerik:GridViewDataColumn Header="Type" Width="*"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Type}" /> </DataTemplate> </telerik:GridViewColumn.CellTemplate> <telerik:GridViewColumn.CellEditTemplate> <DataTemplate> <telerik:RadComboBox Name="rcbType" SelectedIndex="{Binding Type}"> <telerik:RadComboBoxItem Content="MetricName"/> <telerik:RadComboBoxItem Content="Custom"/> </telerik:RadComboBox> </DataTemplate> </telerik:GridViewColumn.CellEditTemplate> </telerik:GridViewDataColumn> <telerik:GridViewDataColumn Header="Icon"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <Image Source="{Binding Icon}" Width="20" Height="20" Stretch="Uniform" Margin="0"/> </DataTemplate> </telerik:GridViewColumn.CellTemplate> <telerik:GridViewColumn.CellEditTemplate> <DataTemplate> <telerik:RadButton Name="btnUpload" Command = "{Binding Path=BtnUploadClick}" DataContext="{Binding Source={StaticResource dataContextProxy}, Path=DataContext}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}" > <Image Source="{Binding Icon}" Width="20" Height="20" Stretch="Uniform" Margin="0"/> </telerik:RadButton> </DataTemplate> </telerik:GridViewColumn.CellEditTemplate> </telerik:GridViewDataColumn> <telerik:GridViewColumn Header="aaa"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <telerik:RadButton Content="Delete" Command = "{Binding Path=Save}" DataContext="{Binding Source={StaticResource dataContextProxy}, Path=DataContext}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}"> </telerik:RadButton> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> <telerik:GridViewDataColumn IsReadOnly="True"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <HyperlinkButton Name="hlEdit" Content="Edit" Command = "{Binding Path=HlEditClick}" DataContext="{Binding Source={StaticResource dataContextProxy}, Path=DataContext}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}"> </HyperlinkButton> <HyperlinkButton Name="hlCommit" Content="Commit" Visibility="Collapsed" Command = "{Binding Path=HlCommitClick}" DataContext="{Binding Source={StaticResource dataContextProxy}, Path=DataContext}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}"/> <HyperlinkButton Name="hlCancel" Content="Cancel" Visibility="Collapsed" Command = "{Binding Path=HlCancelClick}" DataContext="{Binding Source={StaticResource dataContextProxy}, Path=DataContext}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}"/> </StackPanel> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewDataColumn> <telerik:GridViewColumn> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <HyperlinkButton Name="hlDelete" Content="Delete" Command = "{Binding Path=HlDeleteClick}" DataContext="{Binding Source={StaticResource dataContextProxy}, Path=DataContext}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}" /> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> </telerik:RadGridView.Columns> </telerik:RadGridView> <telerik:RadDataPager x:Name="radDataPager" Grid.Row="2" PageSize="10" Margin="0,1,0,0" > <i:Interaction.Triggers> <i:EventTrigger EventName ="PageIndexChanged"> <i:InvokeCommandAction Command="{Binding Path=PageIndexChanged}" CommandParameter="{Binding ElementName=radDataPager}"></i:InvokeCommandAction> </i:EventTrigger> </i:Interaction.Triggers> </telerik:RadDataPager> <!--<StackPanel Orientation="Vertical">--> <telerik:RadButton Name="btnInsert" Grid.Row="3" Content="Add new item" HorizontalAlignment="Left"> <i:Interaction.Triggers> <i:EventTrigger EventName ="Click"> <i:InvokeCommandAction Command="{Binding Path=BtnInsertClick}" CommandParameter="{Binding ElementName=radGridView1}"></i:InvokeCommandAction> </i:EventTrigger> </i:Interaction.Triggers> </telerik:RadButton> </Grid></navigation:Page>
.cs文件
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;using System.Windows;using System.Windows.Browser;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using System.Windows.Navigation;using System.Xml.Linq;using Telerik.Windows.Controls;using eMite.Silverlight.Data.wsEmite;using mircomodels3.MetricNode.Mode;namespace mircomodels3.MetricNode{ public partial class MetricNode : Page { public MetricNode(EmiteWebServiceClient wsEmiteClient) { InitializeComponent(); this.DataContext = MetricNode.CreateModel(radDataPager, radGridView1, wsEmiteClient,rcbType); } public static MetricNodeViewModel CreateModel(Telerik.Windows.Controls.RadDataPager radDataPager, Telerik.Windows.Controls.RadGridView radGridView, EmiteWebServiceClient wsEmiteClient, Telerik.Windows.Controls.RadComboBox radComboBox) { MetricNodeService metricService=new MetricNodeService(); return new MetricNodeViewModel(metricService, radDataPager,radGridView,wsEmiteClient,radComboBox); } }}
viewmodel
using System;using System.Net;using System.Threading;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using MicroModels;using mircomodels3.MetricNode.Mode;namespace mircomodels3.MetricNode{ public class MetricNodeViewModel:MicroModel { public MetricNodeViewModel(MetricNodeService mns, Telerik.Windows.Controls.RadDataPager radDataPager, Telerik.Windows.Controls.RadGridView radGridView, EmiteWebServiceClient wsEmiteClient,Telerik.Windows.Controls.RadComboBox radComboBox) { Command("RcbTypeSelectionChanged", (object sender) => mns.RcbTypeSelectionChanged(sender)); Command("RadGridViewBeginningEdit", (object sender) => mns.RadGridViewBeginningEdit(sender)); Command("RadGridViewSelectionChanged", (object sender) => mns.RadGridViewSelectionChanged(sender)); Command("BtnUploadClick", (object sender) => mns.BtnUploadClick(sender)); Command("PageIndexChanged", (object sender) => mns.PageIndexChanged(sender)); Command("BtnInsertClick", (object sender) => mns.BtnInsertClick(sender)); Command("LoadAll", () => mns.GetAllMetricNodeIcon(radDataPager, radGridView, wsEmiteClient,radComboBox)); Command("Save", () => MessageBox.Show("dsdsa")); Command("HlEditClick",(object sender)=>mns.HlEditClick(sender)); Command("HlCommitClick", (object sender) =>mns.HlCommitClick(sender)); Command("HlCancelClick", (object sender) =>mns.HlCancelClick(sender)); Command("HlDeleteClick", (object sender) => mns.HlDeleteClick(sender)); Command("ExportToCSV", () => mns.ExportToCSV()); Command("CSVImport", () => mns.CSVImport()); } }}
Service
using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.IO;using System.Linq;using System.Net;using System.ServiceModel;using System.Text;using System.Threading;using System.Windows;using System.Windows.Browser;using System.Windows.Controls;using System.Windows.Controls.Primitives;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using Telerik.Windows.Controls;using Telerik.Windows.Controls.GridView;using eMite.Silverlight.Data;using eMite.Silverlight.Data.wsEmite;using mircomodels3.MetricNode.Mode;using mircomodels3.MetricNode.appClass;using SelectionChangedEventArgs = Telerik.Windows.Controls.SelectionChangedEventArgs;namespace mircomodels3.MetricNode{ public class MetricNodeService { private EmiteWebServiceClient _wsEmiteClient; private Telerik.Windows.Controls.RadGridView _radGridView; private Telerik.Windows.Controls.RadDataPager _radDataPager; private Telerik.Windows.Controls.RadComboBox _rcbType; readonly DataProvider _provider = new DataProvider(new EmiteWcfFactory()); private bool _isInsert; private GridViewCellBase _pastCell; private GridViewRowItem _pastRow; private object _item; private byte[] _imageBytes; private ClientMetricNodeIcon _removeItem; private ObservableCollection<MetricNodeIconDto> _mnIcons; private bool _isUpload = false; public ObservableCollection<ClientMetricNode> _NodeData; public object _DataContext; public MetricNode metricNode; public void GetAllMetricNodeIcon(Telerik.Windows.Controls.RadDataPager radDataPager,Telerik.Windows.Controls.RadGridView radGridView,EmiteWebServiceClient wsEmiteClient,Telerik.Windows.Controls.RadComboBox radComboBox) { _wsEmiteClient = wsEmiteClient; //_metricNode = metricNode; _radGridView = radGridView; _radDataPager = radDataPager; _rcbType = radComboBox; var mniRequest = new MetricNodeIconRequest() { Start = 1, End = radDataPager.PageSize, }; TempToken.CreateScopeAndSecurityToken(wsEmiteClient.InnerChannel); _wsEmiteClient.GetMetricNodeIconsCompleted -= _wsEmiteClient_GetMetricNodeIconsCompleted; _wsEmiteClient.GetMetricNodeIconsCompleted += _wsEmiteClient_GetMetricNodeIconsCompleted; _wsEmiteClient.GetMetricNodeIconsAsync(mniRequest); } private void _wsEmiteClient_GetMetricNodeIconsCompleted(object sender, GetMetricNodeIconsCompletedEventArgs e) { if (e.Error == null) { if (e.Result != null && e.Result.Count > 0) { var reponse = e.Result; _radDataPager.ItemCount = reponse.Count; //_radGridView.ItemsSource = reponse.MetricNodeIcons.ToList(); var cmnis = reponse.MetricNodeIcons.Select(mni => new ClientMetricNodeIcon() { IconId = mni.IconId, Icon = mni.Icon, Regex = mni.Regex, Type = mni.Type, UserName = mni.UserName }).ToList(); _radGridView.ItemsSource = cmnis; _radGridView.Columns[4].IsVisible = false; } } } public void RcbTypeSelectionChanged(object sender) { Telerik.Windows.Controls.RadComboBox rcbType = sender as Telerik.Windows.Controls.RadComboBox; _rcbType = rcbType; if (_mnIcons == null || _mnIcons.Count == 0) { var mniRequest = new MetricNodeIconRequest { Op = rcbType.SelectedIndex + 1, Start = 1, End = _radDataPager.PageSize, }; GetMetricNodeIcons(mniRequest); } else { var cmnis = new ObservableCollection<ClientMetricNodeIcon>(); foreach (MetricNodeIconDto mni in _mnIcons.Where(n => n.Type == rcbType.SelectedIndex + 1).Take(_radDataPager.PageSize)) { cmnis.Add(new ClientMetricNodeIcon { IconId = mni.IconId, Icon = mni.Icon, Regex = mni.Regex, Type = mni.Type, UserName = mni.UserName }); } _radDataPager.ItemCount = _mnIcons.Count(n => n.Type == 1); _radDataPager.PageIndex = 0; _radGridView.ItemsSource = cmnis; } } private void GetMetricNodeIcons(MetricNodeIconRequest mniRequest) { _wsEmiteClient=new EmiteWebServiceClient(); TempToken.CreateScopeAndSecurityToken(_wsEmiteClient.InnerChannel); _wsEmiteClient.GetMetricNodeIconsCompleted -= _wsEmiteClient_GetMetricNodeIconsCompleted; _wsEmiteClient.GetMetricNodeIconsCompleted += _wsEmiteClient_GetMetricNodeIconsCompleted; _wsEmiteClient.GetMetricNodeIconsAsync(mniRequest); } public void RadGridViewBeginningEdit(object sender) { Telerik.Windows.Controls.RadGridView radGridView = sender as Telerik.Windows.Controls.RadGridView; if (_pastRow == null || _pastRow != ((GridViewDataControl)(sender)).CurrentCell.ParentRow) { _pastRow = ((GridViewDataControl)(sender)).CurrentCell.ParentRow; GridViewCellBase cell = _pastRow.Cells[2]; IList<HyperlinkButton> list = cell.ChildrenOfType<HyperlinkButton>(); foreach (HyperlinkButton hlbtn in list) { hlbtn.Visibility = hlbtn.Content.ToString() == "Edit" ? Visibility.Collapsed : Visibility.Visible; } } if (_pastRow != null && _pastRow == ((GridViewDataControl)(sender)).CurrentCell.ParentRow) { //pastRow = ((GridViewDataControl)(sender)).CurrentCell.ParentRow; GridViewCellBase cell = _pastRow.Cells[2]; IList<HyperlinkButton> list = cell.ChildrenOfType<HyperlinkButton>(); foreach (HyperlinkButton hlbtn in list) { hlbtn.Visibility = hlbtn.Content.ToString() == "Edit" ? Visibility.Collapsed : Visibility.Visible; } } } public void RadGridViewSelectionChanged(object sender) { Telerik.Windows.Controls.RadGridView radGridView1 = sender as Telerik.Windows.Controls.RadGridView; var row = radGridView1.ItemContainerGenerator.ContainerFromItem(radGridView1.SelectedItem) as GridViewRow; if (row == null) return; if (_pastCell == null) { _pastCell = row.Cells[2]; return; } IList<HyperlinkButton> list = _pastCell.ChildrenOfType<HyperlinkButton>(); foreach (HyperlinkButton hlbtn in list) { hlbtn.Visibility = hlbtn.Content.ToString() == "Edit" ? Visibility.Visible : Visibility.Collapsed; } if (!_isInsert) radGridView1.CancelEdit(); else { _isInsert = false; } _pastCell = row.Cells[2]; } public void BtnUploadClick(object sender) { //Telerik.Windows.Controls.RadGridView radGridView1 = sender as Telerik.Windows.Controls.RadGridView; _isUpload = true; _item =(((FrameworkElement) (((FrameworkElement) (((FrameworkElement) (sender)).Parent)).Parent)).DataContext); //_item = radGridView1.SelectedItem; //var item =((Telerik.Windows.Controls.RadRowItem) // (((Telerik.Windows.Controls.GridView.GridViewCellBase) // ((((Button) (sender)).Parent))).ParentRow)).Item; var dlg = new OpenFileDialog { Filter = "Image Files(*.gif;*.jpg;*.jpeg;*.png)|*.gif;*.jpg;*.jpeg;*.png", Multiselect = false }; dlg.ShowDialog(); if (dlg.File == null) return; Stream inputStream = dlg.File.OpenRead(); //tempStream = inputStream; long length = inputStream.Length; _imageBytes = new byte[length]; var reader = new BinaryReader(inputStream); _imageBytes = reader.ReadBytes(Convert.ToInt32(length)); if (_item != null) { var clientMetricNodeIcon = _item as ClientMetricNodeIcon; if (clientMetricNodeIcon != null && clientMetricNodeIcon.IconId != 0) { var mni = new MetricNodeIconRequest { Start = 1, End = _radDataPager.PageSize, }; TempToken.CreateScopeAndSecurityToken(_wsEmiteClient.InnerChannel); _wsEmiteClient.GetMetricNodeIconsCompleted -= _wsEmiteClient_GetMetricNodeIconsCompleted; _wsEmiteClient.GetMetricNodeIconsCompleted += _wsEmiteClient_GetMetricNodeIconsCompleted; _wsEmiteClient.GetMetricNodeIconsAsync(mni); } else if (clientMetricNodeIcon != null && clientMetricNodeIcon.IconId == 0) { clientMetricNodeIcon.Icon = _imageBytes; } } } public void PageIndexChanged(object sender) { Telerik.Windows.Controls.RadDataPager radDataPager = sender as Telerik.Windows.Controls.RadDataPager; _radDataPager = radDataPager; if (_radGridView == null) return; if (_radGridView.Items != null && _radGridView.Items.Count > 0 && _mnIcons == null) { var mniRequest = new MetricNodeIconRequest { Start = radDataPager.PageIndex * _radDataPager.PageSize + 1, End = radDataPager.PageIndex * _radDataPager.PageSize + _radDataPager.PageSize, }; GetMetricNodeIcons(mniRequest); } else { BindGridview(); } } private void BindGridview() { var cmnis = new ObservableCollection<ClientMetricNodeIcon>(); foreach ( MetricNodeIconDto mni in _mnIcons.Where(n => n.Type == _rcbType.SelectedIndex + 1).Skip(_radDataPager.PageSize * _radDataPager.PageIndex). Take(_radDataPager.PageSize)) { cmnis.Add(new ClientMetricNodeIcon { IconId = mni.IconId, Icon = mni.Icon, Regex = mni.Regex, Type = mni.Type, UserName = mni.UserName }); } _radGridView.ItemsSource = cmnis; _radDataPager.ItemCount = _mnIcons.Count(n => n.Type == _rcbType.SelectedIndex + 1); } public void BtnInsertClick(object sender) { Telerik.Windows.Controls.RadGridView radGridView1 = sender as Telerik.Windows.Controls.RadGridView; _isInsert = true; radGridView1.BeginInsert(); } public void HlEditClick(object sender) { var children = ((Panel)(((ButtonBase)(sender)).Parent)).Children; foreach (UIElement child in children) { child.Visibility = ((ContentControl)child).Content.ToString() == "Edit" ? Visibility.Collapsed : Visibility.Visible; } ((GridViewCell)(((StackPanel)((((ButtonBase)(sender)).Parent))).Parent)).ParentRow.IsSelected = true; } public void HlCommitClick(object sender) { _radGridView.RowEditEnded += RadGridView1RowEditEnded; _radGridView.CommitEdit(); var children = ((Panel)(((ButtonBase)(sender)).Parent)).Children; foreach (UIElement child in children) { child.Visibility = ((ContentControl)child).Content.ToString() == "Edit" ? Visibility.Visible : Visibility.Collapsed; } } private void RadGridView1RowEditEnded(object sender, GridViewRowEditEndedEventArgs e) { var newdata = e.NewData as ClientMetricNodeIcon; _item = newdata; if (newdata == null) return; if (e.EditOperationType == GridViewEditOperationType.Edit) { var mni = new MetricNodeIconRequest { Op = 1, MetricNodeIcon = new MetricNodeIconDto { IconId = newdata.IconId, Icon = newdata.Icon, Regex = newdata.Regex, Type = newdata.Type, UserName = "admin" //ModelLocator.Instance.UserManager.LoggedInUser.UserName } }; SaveMetricNodeIcon(mni); } if (e.EditOperationType == GridViewEditOperationType.Insert) { var mni = new MetricNodeIconRequest { Op = 0, MetricNodeIcon = new MetricNodeIconDto { IconId = newdata.IconId, Icon = newdata.Icon, Regex = newdata.Regex, Type = _rcbType.SelectedIndex + 1, UserName = "admin" //ModelLocator.Instance.UserManager.LoggedInUser.UserName } }; SaveMetricNodeIcon(mni); } _radGridView.RowEditEnded -= RadGridView1RowEditEnded; } private void SaveMetricNodeIcon(MetricNodeIconRequest mni) { TempToken.CreateScopeAndSecurityToken(_wsEmiteClient.InnerChannel); InvokerBase invoker = _provider.CreateInvoker("", App.pageBinding, App.webServiceURL); //AsyncCallback asyncCallback = SaveMetricNodeIconEventCallBack; //invoker.SaveMetricNodeIconAsync(mni, asyncCallback); invoker.Dispose(); } public void HlCancelClick(object sender) { _radGridView.CancelEdit(); var children = ((Panel)(((ButtonBase)(sender)).Parent)).Children; foreach (UIElement child in children) { child.Visibility = ((ContentControl)child).Content.ToString() == "Edit" ? Visibility.Visible : Visibility.Collapsed; } } public void HlDeleteClick(object sender) { var removeItem = ((GridViewCellBase)(((ButtonBase)(sender)).Parent)).ParentRow.Item as ClientMetricNodeIcon; if (removeItem == null) { _radGridView.CancelEdit(); return; } //var removeItem = radGridView1.SelectedItem as ClientMetricNodeIcon; if (removeItem.IconId == 0) { try { ((ObservableCollection<ClientMetricNodeIcon>)_radGridView.ItemsSource).Remove(removeItem); } catch (Exception) { _radGridView.CancelEdit(); } } else if (removeItem.IconId != 0) { _removeItem = removeItem; ((List<ClientMetricNodeIcon>)_radGridView.ItemsSource).Remove(removeItem); var mni = new MetricNodeIconRequest { Op = 2, MetricNodeIcon = new MetricNodeIconDto { IconId = removeItem.IconId } }; SaveMetricNodeIcon(mni); } } public void ExportToCSV() { string extension = "csv"; SaveFileDialog dialog = new SaveFileDialog() { DefaultExt = extension, Filter = String.Format("{1} files (*.{0})|*.{0}|All files (*.*)|*.*", extension, "CSV"), FilterIndex = 1 }; if (dialog.ShowDialog() == true) { using (Stream stream = dialog.OpenFile()) { _radGridView.Export(stream, new GridViewExportOptions() { Format = ExportFormat.Csv, ShowColumnHeaders = true, ShowColumnFooters = true, ShowGroupFooters = false, }); } } } public void CSVImport() { OpenFileDialog dlg = new OpenFileDialog() { Filter = "Csv Files (*.csv)|*.csv|All Files (*.*)|*.*", }; if (true == dlg.ShowDialog()) { //myList.DataContext = dlg.Files; FileInfo fi = dlg.File; if (fi != null) { using (Stream stream = fi.OpenRead()) { List<ClientMetricNodeIcon> metricNodeIcons = new List<ClientMetricNodeIcon>(); StreamReader fileReader = new StreamReader(stream); string strLine = ""; string[] tempString = new string[4]; while (strLine != null) { strLine = fileReader.ReadLine(); if (strLine != null && strLine.Length > 0) { //ls.Add(strLine.Split(',')); ClientMetricNodeIcon metricNode = new ClientMetricNodeIcon(); tempString = strLine.Split(','); metricNode.UserName = tempString[0]; metricNode.Regex = tempString[1]; try { metricNode.Type = Convert.ToInt16(tempString[2]); } catch (Exception err) { metricNode.Type = 0; } try { byte[] byteArry = new byte[0]; byteArry = System.Text.Encoding.UTF8.GetBytes(tempString[3]); //string str = System.Text.Encoding.UTF8.GetString(byteArry); metricNode.Icon = byteArry; } catch (Exception err) { } metricNodeIcons.Add(metricNode); } } fileReader.Close(); _radGridView.ItemsSource = metricNodeIcons; stream.Close(); } } } } }}
- MicroModel使用Gidview显示数据
- listView、gidView和spinner
- 使用ObjectDataSource 显示数据
- 使用表格显示数据
- 使用UIPickerView显示数据
- 使用ListView 显示数据
- 使用分级显示数据
- 使用格式化显示数据
- 使用EL显示数据
- GridView+Page(Gidview及分页)
- [原创]使用DataList显示数据
- [原创]使用Repeater显示数据
- 使用AJAX实时显示数据
- 使用DataView对象显示数据
- 使用QML视图显示数据
- 使用JLabel动态显示数据
- 使用OpenCV显示KinectV2数据
- 使用surface显示yuv数据
- div 使用误解
- cu3ox软件去除水印的方法
- 中国没有乔布斯,美国没有史玉柱
- STL-----MAP应用
- 纽约时报:乔布斯生命中的最后数周 --权作纪念
- MicroModel使用Gidview显示数据
- JUnit Annotation——JUnit单元测试中批注@详解
- 中国没有乔布斯,美国没有史玉柱
- gcc编译报错:程序中有游离的‘\357’‘\273’‘\277’等
- Base64将图片转化成String
- otsu
- 各个模块分解
- jquery 中 $(document).ready() 与window.onload 的区别
- XML标准中的CDATA节