吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1317|回复: 3
收起左侧

[求助] WPF DataGridComboBoxColumn怎么获取选中值

[复制链接]
大大怪ZIFA 发表于 2020-9-3 09:14
本帖最后由 大大怪ZIFA 于 2020-9-3 09:17 编辑

[XML] 纯文本查看 复制代码
<DataGridComboBoxColumn Header="特殊要求" x:Name="cbo_Special" Width="2*"/>

xaml中在DataGrid 设置DataGridComboBoxColumn 列,绑定了下拉列表数据源
[C#] 纯文本查看 复制代码
DataTable dt1 = myClient.Button_Click_SelectSpecial().Tables[0];
cbo_Special.ItemsSource = dt1.DefaultView;
cbo_Special.DisplayMemberPath = "SpecialName";
cbo_Special.SelectedValuePath = "SpecialID";


这该如何获取下拉列表的选中值,有什么方法吗

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xiao24 发表于 2020-9-3 10:45
为毛不用数据绑定?
类似这样:

xmal:
[XML] 纯文本查看 复制代码
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        xmlns:core="clr-namespace:System;assembly=mscorlib"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <ObjectDataProvider x:Key="SexEnumKey" MethodName="GetValues" ObjectType="{x:Type core:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type Type="local:Sex"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    <Grid >
        <Grid.RowDefinitions>
            <RowDefinition Height="20"></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <Button Grid.Row="0"  Name="Btn" Content="获取性别" Click="Btn_OnClick"></Button>
        <DataGrid Grid.Row="1" Name="Dg" ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridComboBoxColumn Header="性别" SelectedItemBinding="{Binding Sex}" ItemsSource="{Binding Source={StaticResource SexEnumKey}}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>



后台代码:

[C#] 纯文本查看 复制代码
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Windows;

namespace WpfApp1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        /// <summary>
        /// 
        /// </summary>
        private readonly ObservableCollection<Customer> _data = new ObservableCollection<Customer>();

        public MainWindow()
        {
            InitializeComponent();

            _data.Add(new Customer {Sex = Sex.Man});
            _data.Add(new Customer {Sex = Sex.Female});
            Dg.DataContext = _data;
        }

        private void Btn_OnClick(object sender, RoutedEventArgs e)
        {
            var sex = _data.First().Sex.ToString();
            MessageBox.Show(sex);
        }
    }

    public class Customer
    {
        public Sex Sex { get; set; }
    }

    public enum Sex
    {
        [Description("男")] Man,
        [Description("女")] Female
    };
    

}

 楼主| 大大怪ZIFA 发表于 2020-9-3 11:09
xiao24 发表于 2020-9-3 15:43
大大怪ZIFA 发表于 2020-9-3 11:09
那怎么获取选中值呢

这个数据是双向绑定的,直接从_data里面拿就可以了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 13:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表