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();                    }                }            }        }    }}


原创粉丝点击