Advertisement
Guest User

Untitled

a guest
Apr 18th, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.76 KB | None | 0 0
  1. <DataGrid.Columns>
  2. <DataGridComboBoxColumn SelectedValueBinding="{Binding CID}" SelectedValuePath="CID" Header="CID" Width="70">
  3. <DataGridComboBoxColumn.EditingElementStyle>
  4. <Style TargetType="ComboBox">
  5.  
  6. <!--<EventSetter Event="SelectionChanged" Handler="abc"></EventSetter>-->
  7.  
  8.  
  9. <Setter Property="ItemsSource"
  10. Value="{Binding DataContext.EntityCollection,
  11. RelativeSource={RelativeSource Mode=FindAncestor,
  12. AncestorType=Window}}"/>
  13. <Setter Property="DisplayMemberPath" Value="CID"/>
  14.  
  15. </Style>
  16. </DataGridComboBoxColumn.EditingElementStyle>
  17. <DataGridComboBoxColumn.ElementStyle>
  18. <Style TargetType="ComboBox">
  19. <Setter Property="ItemsSource"
  20. Value="{Binding DataContext.EntityCollection,
  21. RelativeSource={RelativeSource Mode=FindAncestor,
  22. AncestorType=Window}}"/>
  23. <Setter Property="DisplayMemberPath" Value="CID"/>
  24. </Style>
  25. </DataGridComboBoxColumn.ElementStyle>
  26.  
  27. <DataGridComboBoxColumn.HeaderStyle>
  28. <Style TargetType="{x:Type DataGridColumnHeader}">
  29. <Setter Property="HorizontalContentAlignment"
  30. Value="Center" />
  31. </Style>
  32. </DataGridComboBoxColumn.HeaderStyle>
  33. </DataGridComboBoxColumn>
  34.  
  35. <DataGridTextColumn Header="UID" Binding="{Binding EntityCollection.UID}" Width="70">
  36. </DataGridTextColumn>
  37.  
  38. <DataGridComboBoxColumn SelectedValueBinding="{Binding CID}" SelectedItem="{Binding SelectedItem}" SelectedValuePath="CID" Header="CID" Width="70">
  39.  
  40. private int _selectedItem;
  41. public int SelectedItem
  42. {
  43. get { return _selectedItem; }
  44. set
  45. {
  46. _selectedItem = value;
  47. OnPropertyChanged("SelectedItem");
  48. }
  49. }
  50.  
  51. <DataGridTextColumn Header="UID" Binding="{Binding SelectedItem.UID}" Width="70">
  52. </DataGridTextColumn>
  53.  
  54. <Window x:Class="ComboBoxDGWPF.Window1"
  55. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  56. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  57. Title="ComboBox DataGrid WPF" Height="300" Width="616"
  58. xmlns:staticData="clr-namespace:ComboBoxDGWPF"
  59. xmlns:controls="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit">
  60.  
  61. <Window.Resources>
  62. <staticData:StatusList x:Key="StatusList"/>
  63. </Window.Resources>
  64.  
  65. <Grid>
  66. <controls:DataGrid x:Name="dgData" AutoGenerateColumns="False">
  67. <controls:DataGrid.Columns>
  68. <controls:DataGridTemplateColumn Header="Status" Width="100">
  69. <controls:DataGridTemplateColumn.CellTemplate>
  70. <DataTemplate>
  71. <TextBlock Text="{Binding Status}"/>
  72. </DataTemplate>
  73. </controls:DataGridTemplateColumn.CellTemplate>
  74. <controls:DataGridTemplateColumn.CellEditingTemplate>
  75. <DataTemplate>
  76. <ComboBox Height="22" ItemsSource="{StaticResource StatusList}" SelectedItem="{Binding Status}"/>
  77. </DataTemplate>
  78. </controls:DataGridTemplateColumn.CellEditingTemplate>
  79. </controls:DataGridTemplateColumn>
  80. <controls:DataGridTextColumn Binding="{Binding Status}" Header="Selected Status" Width="100"/>
  81. </controls:DataGrid.Columns>
  82. </controls:DataGrid>
  83. </Grid>
  84. </Window>
  85.  
  86. using System.Collections.Generic;
  87. using System.Windows;
  88. using System.Windows.Documents;
  89.  
  90. namespace ComboBoxDGWPF
  91. {
  92. public partial class Window1 : Window
  93. {
  94. public Window1()
  95. {
  96. InitializeComponent();
  97.  
  98. List<TicketInfo> ticketsList = new List<TicketInfo>
  99. {
  100. new TicketInfo{ Status="Open"},
  101. new TicketInfo{ Status="Assigned"},
  102. new TicketInfo{ Status="Open"},
  103. new TicketInfo{ Status="Open"},
  104. new TicketInfo{ Status="Closed"},
  105. new TicketInfo{ Status="Open"},
  106. new TicketInfo{ Status="Open"}
  107. };
  108. dgData.ItemsSource = ticketsList;
  109. }
  110. }
  111.  
  112. public class TicketInfo
  113. {
  114. public string Status { get; set; }
  115. }
  116.  
  117. public class StatusList : List<string>
  118. {
  119. public StatusList()
  120. {
  121. this.Add("Assigned");
  122. this.Add("Closed");
  123. this.Add("In Progress");
  124. this.Add("Open");
  125. this.Add("Resolved");
  126. }
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement