Как установить автозаполнение из DataGridComboBoxColumn WPF? - PullRequest
1 голос
/ 25 апреля 2019

я новый в wpf.Я могу ввести текст в ComboBox, но не отображать текст.и Как получить значение DataGridComboBoxColumn WPF?

снимок экрана:

enter image description here

после вкладки в столбце блока, после чего DataGridComboBoxColumn выбранный элемент пуст

enter image description here

Код Xmal Здесь:

<DataGrid  x:Name="item_list" AutoGenerateColumns="True" Height="410" CanUserResizeColumns="False" >
    <DataGrid.Columns>
        <DataGridComboBoxColumn x:Name="list_itemname" Width="*" Header="Item Name"  SelectedItemBinding="{Binding itemlist}">
            <DataGridComboBoxColumn.ElementStyle>
                <Style TargetType="ComboBox">
                    <Setter Property="IsEditable" Value="True"/>
                    <Setter Property="ItemsSource" Value="{Binding Path=itemlist }" />
                </Style>
            </DataGridComboBoxColumn.ElementStyle>
            <DataGridComboBoxColumn.EditingElementStyle>
                <Style TargetType="ComboBox">
                    <Setter Property="IsEditable" Value="True"/>
                    <Setter Property="ItemsSource" Value="{Binding Path=itemlist }"  />
                </Style>
            </DataGridComboBoxColumn.EditingElementStyle>
        </DataGridComboBoxColumn>
        <DataGridTextColumn x:Name="item_unit" Binding="{Binding itemunit}"   Width="*" Header="Unit"/>
    </DataGrid.Columns>     
</DataGrid>

c # Код здесь:

public partial class page_addsale : Page
    {

        List<string> itemlist = new List<string>();
        ObservableCollection<Proxy> collection = new ObservableCollection<Proxy>();
        DataTable item_dt = new DataTable();

        public page_addsale()
        {
            InitializeComponent();

            con.Open();
            OleDbDataAdapter ad = new OleDbDataAdapter("select id, item_name from item_list", con);
            ad.Fill(item_dt);
            con.Close();     

        }       
        public class Proxy
        {
            public string itemname { get; set; }
            public string itemunit { get; set; }

        }
        private void add_sale_Loaded(object sender, RoutedEventArgs e)
        {
            tem_list.CanUserAddRows = true;
            item_list.AutoGenerateColumns = false;
            string[] arr_item = item_dt.AsEnumerable().Select<System.Data.DataRow, String>(x => x.Field<String>("item_name")).ToArray();
            itemlist.AddRange(arr_item);
            list_itemname.ItemsSource = itemlist;
            item_list.ItemsSource = collection;            
        }
    }   

как решить этот DataGridComboBoxColumn WPF

...