Столбец со списком wpf datagrid

У меня проблемы с чтением поля. Я пробовал по-разному, но все еще не могу. Я хочу прочитать значение, которое пользователь выбрал для следующих 3 значений.

Код в XAML

<DataGridComboBoxColumn X:Name="dgcbc" Header="Wynik"/>

Код на С#

List<string> list = new List <string> ();
lista.Add ("Prize");
lista.Add ("Draw");
lista.Add ("Lost");
dgcbc.ItemsSource = list;

person user231605    schedule 25.09.2013    source источник
comment
Что вы имеете в виду, говоря, что я хочу прочитать значение, которое пользователь выбрал для следующих 3 значений? А в чем конкретно у вас проблема?   -  person JFTxJ    schedule 25.09.2013
comment
Не делай этого таким образом. В WPF попробуйте использовать привязки, это намного проще: wpftutorial.net/DataGrid.html   -  person Florian Gl    schedule 25.09.2013


Ответы (2)


Этот образец может помочь вам понять, как можно использовать список.

public class Employee
{
    public string Name { get; set; }
    public string Gender { get; set; }        
}

XAML

<StackPanel>
  <DataGrid AutoGenerateColumns="False" Name="myGrid" Margin="10">
     <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=Name}" />             
        <DataGridComboBoxColumn Width="100" x:Name="Gender" 
                    SelectedValueBinding="{Binding Gender, Mode=TwoWay}"  
                    DisplayMemberPath="{Binding Gender}" />
     </DataGrid.Columns>
  </DataGrid>
  <Button Name="ShowPersonDetails"  
          Content="Show Person Details" 
          Width="200" Height="30"  
          Click="ShowPersonDetails_Click" Margin="10" />
</StackPanel>

Код программной части

public partial class WPFDataGridComboBox : Window
{
    public List<Employee> Employees { get; set; }
    public List<string> Genders { get; set; }

    public WPFDataGridComboBox()
    {
        Employees = new List<Employee>()
        {
            new Employee() { Name = "ABC", Gender = "Female" },
            new Employee() { Name = "XYZ" }
        };

        Genders = new List<string>();
        Genders.Add("Male");
        Genders.Add("Female");

        InitializeComponent();
        myGrid.ItemsSource = Employees;
        Gender.ItemsSource = Genders;
    }

    private void ShowPersonDetails_Click(object sender, RoutedEventArgs e)
    {
        foreach (Employee employee in Employees)
        {
            string text = string.Empty;
            text = "Name : " + employee.Name + Environment.NewLine;
            text += "Gender : " + employee.Gender + Environment.NewLine;
            MessageBox.Show(text);
        }
    }
}
person RonakThakkar    schedule 25.09.2013
comment
Вместо этого я бы заменил myGrid.ItemsSource = Employees; и Gender.ItemsSource = Genders на привязки. - person Bob.; 25.09.2013
comment
Да, я понимаю, как это работает, и написал остальной код. Все работает. Спасибо и с наилучшими пожеланиями за вашу помощь RonakThakkar. :) - person user231605; 26.09.2013
comment
@RonakThakkar - я новичок в WPF (на самом деле технологии MS) и некоторое время искал это решение. Это действительно помогло мне. Я думаю, вы должны написать статью в блоге об этом. - person Jadav Bheda; 14.06.2017

Я думаю, вы хотите включить множественный выбор в поле со списком внутри DataGridComboBoxColumn. Следующий проект кода делает то же самое.

http://www.codeproject.com/Articles/21085/CheckBox-ComboBox-Extending-the-ComboBox-Class-and

person Rajiv    schedule 25.09.2013