WPF数据网格中的组合框列

12

我读取这个字段有困难。我已经尝试了不同的方法,但仍然无法做到。我想读取用户选择的以下3个值。

XAML中的代码

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

C#代码

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

“我想读取用户选择的以下3个值的值”是什么意思?你的问题确切是什么? - JFTxJ
不要这样做。在 WPF 中尝试使用绑定,它更容易:http://www.wpftutorial.net/DataGrid.html - Florian Gl
2个回答

22

这个示例可以帮助你理解如何使用列表框。

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);
        }
    }
}

2
我会将 myGrid.ItemsSource = Employees;Gender.ItemsSource = Genders 修改为绑定方式。 - Bob.
是的,我理解它的工作原理,而且我编写了其余的代码。一切都正常。感谢RonakThakkar的帮助和美好的祝愿。 :) - user231605
@RonakThakkar - 我对WPF(事实上是MS技术)非常陌生,一直在寻找这个解决方案。这真的帮了我很多。我认为你应该写一篇关于它的博客文章。 - Jadav Bheda

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接