Posts

Showing posts from 2020

How to Import/Export data of DataGrid from/to CSV file in wpf using MVVM

In this post i will explain how to Import/Export data of DataGrid from/to CSV file in wpf using MVVM To Import CSV to DataGrid i have created method called LoadCSV() which will load CSV data and update the DataGrid  private void LoadCSV()         {             LstEmployees.AddRange(File.ReadAllLines("csvFilePath")                                          .Skip(1)                                          .Select(v => CsvToEmployees(v))                                          .ToList());         }          In LoadCSV() method i am first reading the CSV using File clas ReadAllLines() method After that i am skip the first line becuase in first line we used to have Header for CSV file And then i am calling CsvToEmployees() which take a single line and split the text by comma and then convert it to Employees. After converting All text to Employees list i am adding the list to ObservableCollection which is Binded with DataGrid         Employees CsvToEmployees(string c

Multiple ways to handle Checked/Unchecked event in wpf using MVVM

Image
In this post i am trying to explain multiple way to handle Checked/Unchecked event in wpf using MVVM First let's create a view which contains multiple CheckBox.  All CheckBox will handle the Checked/Unchecked event differently.  CheckBoxEx.xaml <Window x:Class="PrismApp.Views.CheckBoxEx"              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"              xmlns:prism="http://prismlibrary.com/"              prism:ViewModelLocator.AutoWireViewModel="True">     <StackPanel >         <CheckBox Content="Bind Command by passing CheckBox as CommandParameter but set command parameter type is object" HorizontalAlignment="Left" VerticalAlignment="Center"  Name="chkObj"                   Command="{Binding CheckedChangedCommand}" CommandParameter="{Binding ElementName=chkObj}"/>

How to save data from datagrid to database in C# WPF?

Image
DataGridEx.xaml <Window x:Class="PrismApp.Views.DataGridEx"              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"              xmlns:prism="http://prismlibrary.com/"              prism:ViewModelLocator.AutoWireViewModel="True">     <Grid>         <DataGrid ItemsSource="{Binding LstEmployees}"                   AutoGenerateColumns="False" CanUserAddRows="False" >             <DataGrid.Columns>                 <DataGridTextColumn Header="Employee Id" Binding="{Binding EmpId}" IsReadOnly="True"/>                 <DataGridTextColumn Header="Employee Name" Binding="{Binding EmpName,UpdateSourceTrigger=PropertyChanged}" />                 <DataGridTextColumn Header="Job Title" Binding="{Binding JobTitle,UpdateSource

How to print Hello World on console using reflection in C#?

using System; namespace ConsoleProject {     class Program     {         static void Main(string[] args)         {             //get the method by method name and with string argument types             //Here GetMethod() will return the info of WriteLine(string value)             //and invoke() will call WriteLine method by passing the string "Hello World"             //this line equivalent to Console.WriteLine("Hello World");             typeof(Console).GetMethod("WriteLine", new Type[] { typeof(string) }).Invoke(default, new object[] { "Hello World" });             Console.ReadLine();         }     } }

How to apply theme and color in wpf Metro window application

Image
In this example i am using Prism,unity and MahApps make sure you are also using same otherwise you will not get PrismApplication,BindableBase and MetroWindow .   MainWindow.xaml  <metro:MetroWindow x:Class="WpfApplication.Views.MainWindow"              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"              xmlns:local="clr-namespace:WpfApplication"              mc:Ignorable="d"              xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls"              xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"              Title="Welcome To Metro ui with Prism Unity">      <

Print preview with Print in wpf using MVVM, Prism

  MainWindow.xaml  <Window x:Class="WpfDemo.Views.MainWindow"              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"              xmlns:local="clr-namespace:WpfDemo"              mc:Ignorable="d" Title="MainWindow">      <StackPanel Orientation="Vertical" HorizontalAlignment="Center">          <TextBlock Text="This is Print Preview demo"/>          <Button Content="Open file dialog" Command="{Binding ClickCommand}"  Margin="10" Width="100"/>        </StackPanel>  </Window>   MainWindow.xaml.cs   public partial class MainWindow : Window  

How to Enable/Disable Button on Validation using DelegateCommand of Prism

Image
  MainWindow.xaml  <Window x:Class="Wpf.Views.MainWindow"              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"              xmlns:local="clr-namespace:Wpf"              mc:Ignorable="d">      <Window.Resources>          <ControlTemplate  x:Key="TextBoxErrorStyle">              <StackPanel Orientation="Horizontal">                  <AdornedElementPlaceholder x:Name="ErrorHolder" >                      <Border BorderBrush="red" BorderThickness="1" />                  </AdornedElementPlaceholder>                  <TextBlock  Text="{Binding [0].ErrorCont

How to edit selected row of DataGrid and add the new row to DataGrid

MainWindow.xaml <Window x:Class="WpfEx.Views.MainWindow"        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"        xmlns:local="clr-namespace:WpfEx"        mc:Ignorable="d">   <StackPanel> <DataGrid ItemsSource="{Binding LstStudents}" SelectedItem="{Binding SelectedStudent}" AutoGenerateColumns="False" Height="200" Width="200" HorizontalAlignment="Left">            <DataGrid.Columns>                <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>                <DataGridTextColumn Header="Roll" Binding="{Binding Roll}"/>    

How to show xml data in DataGrid?

XMLData.xml < Students >   < Student >     < Roll > 1 </ Roll >     < Name > Kumar </ Name >   </ Student >   < Student >     < Roll > 2 </ Roll >     < Name > Harsh </ Name >   </ Student > </ Students > Create a class for xml data public   partial   class   Student     {          public   int  Roll {  get ;  set ; }                          public   string  Name {  get ;  set ; }     } Code To get data from xml file XmlSerializer serializer =  new  XmlSerializer( typeof ( ObservableCollection<Student>) ,  new XmlRootAttribute( "Students" )); //here Student is type and Students is root of xml                        using  (StreamReader reader =  new StreamReader( @"D:\XMLData.xml" ))             {                 //Deserilize the xml file and assign to collection                 LstStudents =(ObservableCollectio