Visual Studio/WPF > DataGrid > DataGridComboBoxColumn을 사용해보기

운영 환경
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community
Sublime Text 2

관련 Visual Studio / WPF > DataGrid > XAML에서 열을 추가하여 CS에서 데이터 추가

DataGridViewDataGrid에서 콤보 상자를 다루고 싶습니다.

참고 : h tp : / / s tac ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 19003133 / wpf-datagi d-ko m bobo x-ko m
  • XAML에서 DataGridComboBoxColumn 추가
  • x:Name 명세
  • SelectedValueBinding 명세
  • DisplayMemberPath 명세


  • XAML
            <DataGrid x:Name="dataGridView1" HorizontalAlignment="Left" Height="211" Margin="10,10,0,0" VerticalAlignment="Top" Width="497">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
                    <DataGridComboBoxColumn Width="100" x:Name="Gender"
                                            Header="Gender"
                                            SelectedValueBinding="{Binding Gender, Mode=TwoWay}"
                                            DisplayMemberPath="{Binding Gender}"/>
                </DataGrid.Columns>
            </DataGrid>
    
    

    MainWindow.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace _170421_t1510_WpfDataGridComboBox
    {
        /// <summary>
        /// MainWindow.xaml の相互作用ロジック
        /// </summary>
        public partial class MainWindow : Window
        {
            public List<string> genlist { get; set; }
    
            public MainWindow()
            {
                genlist = new List<string>();
                genlist.Add("Male");
                genlist.Add("Female");
    
                InitializeComponent();
                Gender.ItemsSource = genlist;
                dataGridView1.Items.Add(new Employee { Name = "7of9", Gender = "Female" });
                dataGridView1.Items.Add(new Employee { Name = "Chakotay", Gender = "Male" });
                dataGridView1.Items.Add(new Employee { Name = "Odo", Gender = "Unknown" });
            }
        }
        public class Employee
        {
            public string Name { get; set; }
            public string Gender { get; set; }
        }
    }
    



    Odo (Deep Space Nine의 캐릭터)는 Unknown의 Gender이지만, 추가해도 「Unknown」이라고 하는 표시는 아니다. Gender의 리스트 항목에 없기 때문일 것이다.

    콤보 상자 항목을 편집하려고 두 번 클릭하면 예외가 발생합니다. 이 근처는 향후 학습 사항.

    좋은 웹페이지 즐겨찾기