Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <DataGrid.Columns>
- <DataGridComboBoxColumn SelectedValueBinding="{Binding CID}" SelectedValuePath="CID" Header="CID" Width="70">
- <DataGridComboBoxColumn.EditingElementStyle>
- <Style TargetType="ComboBox">
- <!--<EventSetter Event="SelectionChanged" Handler="abc"></EventSetter>-->
- <Setter Property="ItemsSource"
- Value="{Binding DataContext.EntityCollection,
- RelativeSource={RelativeSource Mode=FindAncestor,
- AncestorType=Window}}"/>
- <Setter Property="DisplayMemberPath" Value="CID"/>
- </Style>
- </DataGridComboBoxColumn.EditingElementStyle>
- <DataGridComboBoxColumn.ElementStyle>
- <Style TargetType="ComboBox">
- <Setter Property="ItemsSource"
- Value="{Binding DataContext.EntityCollection,
- RelativeSource={RelativeSource Mode=FindAncestor,
- AncestorType=Window}}"/>
- <Setter Property="DisplayMemberPath" Value="CID"/>
- </Style>
- </DataGridComboBoxColumn.ElementStyle>
- <DataGridComboBoxColumn.HeaderStyle>
- <Style TargetType="{x:Type DataGridColumnHeader}">
- <Setter Property="HorizontalContentAlignment"
- Value="Center" />
- </Style>
- </DataGridComboBoxColumn.HeaderStyle>
- </DataGridComboBoxColumn>
- <DataGridTextColumn Header="UID" Binding="{Binding EntityCollection.UID}" Width="70">
- </DataGridTextColumn>
- <DataGridComboBoxColumn SelectedValueBinding="{Binding CID}" SelectedItem="{Binding SelectedItem}" SelectedValuePath="CID" Header="CID" Width="70">
- private int _selectedItem;
- public int SelectedItem
- {
- get { return _selectedItem; }
- set
- {
- _selectedItem = value;
- OnPropertyChanged("SelectedItem");
- }
- }
- <DataGridTextColumn Header="UID" Binding="{Binding SelectedItem.UID}" Width="70">
- </DataGridTextColumn>
- <Window x:Class="ComboBoxDGWPF.Window1"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="ComboBox DataGrid WPF" Height="300" Width="616"
- xmlns:staticData="clr-namespace:ComboBoxDGWPF"
- xmlns:controls="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit">
- <Window.Resources>
- <staticData:StatusList x:Key="StatusList"/>
- </Window.Resources>
- <Grid>
- <controls:DataGrid x:Name="dgData" AutoGenerateColumns="False">
- <controls:DataGrid.Columns>
- <controls:DataGridTemplateColumn Header="Status" Width="100">
- <controls:DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Text="{Binding Status}"/>
- </DataTemplate>
- </controls:DataGridTemplateColumn.CellTemplate>
- <controls:DataGridTemplateColumn.CellEditingTemplate>
- <DataTemplate>
- <ComboBox Height="22" ItemsSource="{StaticResource StatusList}" SelectedItem="{Binding Status}"/>
- </DataTemplate>
- </controls:DataGridTemplateColumn.CellEditingTemplate>
- </controls:DataGridTemplateColumn>
- <controls:DataGridTextColumn Binding="{Binding Status}" Header="Selected Status" Width="100"/>
- </controls:DataGrid.Columns>
- </controls:DataGrid>
- </Grid>
- </Window>
- using System.Collections.Generic;
- using System.Windows;
- using System.Windows.Documents;
- namespace ComboBoxDGWPF
- {
- public partial class Window1 : Window
- {
- public Window1()
- {
- InitializeComponent();
- List<TicketInfo> ticketsList = new List<TicketInfo>
- {
- new TicketInfo{ Status="Open"},
- new TicketInfo{ Status="Assigned"},
- new TicketInfo{ Status="Open"},
- new TicketInfo{ Status="Open"},
- new TicketInfo{ Status="Closed"},
- new TicketInfo{ Status="Open"},
- new TicketInfo{ Status="Open"}
- };
- dgData.ItemsSource = ticketsList;
- }
- }
- public class TicketInfo
- {
- public string Status { get; set; }
- }
- public class StatusList : List<string>
- {
- public StatusList()
- {
- this.Add("Assigned");
- this.Add("Closed");
- this.Add("In Progress");
- this.Add("Open");
- this.Add("Resolved");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement