Применить datatable к combobox в wpf

#c# #wpf #combobox

#c# #wpf #combobox

Вопрос:

Пожалуйста, помогите мне исправить это, я получаю сообщение об ошибке ( NullReferenceException )

Исключение типа ‘System.NullReferenceException’ произошло в HMCS.exe но не был обработан в пользовательском коде ‘

CodeBehind —

 dt = oBALSubLocation.SelectLocation(oBOSubLocation);
cmbSubLocation.ItemsSource = dt;
  

Пользовательский интерфейс —

 <ComboBox x:Name="cmbSubLocation" HorizontalAlignment="Left" Margin="256,41,0,-6" VerticalAlignment="Top" Width="108" Height="26" FontSize="13" />
  

Комментарии:

1. Пользовательский интерфейс — <ComboBox x:Name=»cmbSubLocation» HorizontalAlignment=»Left» Margin=»256,41,0,-6″ VerticalAlignment=»Top» Width=»108″ Height=»26″ FontSize=»13″ />

2. да, я получаю сообщение об ошибке ‘Исключение типа ‘System.NullReferenceException’ произошло в HMCS.exe но не был обработан в пользовательском коде ‘

Ответ №1:

Name — это имя столбца, которое вы хотите отобразить:

Xaml:

 <Window x:Class="WpfApplication1.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"
    mc:Ignorable="d"
    Title="MainWindow">
<Grid>

    <ComboBox x:Name="ComboBox" HorizontalAlignment="Left" Margin="256,41,0,-6"
        VerticalAlignment="Top" Width="108" Height="26" FontSize="13" >
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

</Grid>
  

CodeBehind:

  public partial class MainWindow : Window
 {
    public MainWindow()
    {
        InitializeComponent();

        DataTable dt = GetTable();
        ComboBox.ItemsSource = dt.AsDataView();
    }

    static DataTable GetTable()
    {
        DataTable table = new DataTable();
        table.Columns.Add("Name", typeof(string));
        table.Rows.Add("Test1");
        table.Rows.Add("Test2");
        table.Rows.Add("Test3");
        return table;
    }
 }
  

Комментарии:

1. по-прежнему ошибка ‘Исключение типа ‘System.NullReferenceException’ произошла в HMCS.exe но не был обработан в пользовательском коде ‘

2. Где именно возникает это исключение?

3. в следующей строке ComboBox. ItemsSource = таблица. AsDataView()

4. Я обновил ответ всем кодом, ошибок нет, а в combobox есть значения

5. Пожалуйста, объясните мне, как добавить значение в следующий combobox при добавлении отображаемого текста <TextBlock Text=»{Имя привязки}»/>