Словарь привязки ComboBox ItemsSource WinUI 3 <string, CustomClassObject> выдает исключение InvalidOperationException «ЦC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Словарь привязки ComboBox ItemsSource WinUI 3 <string, CustomClassObject> выдает исключение InvalidOperationException «Ц

Сообщение Anonymous »

Опишите ошибку

Код: Выделить всё

ComboBoxСвязка ItemsSource
с Dictionary выдает ошибку, когда TValue является объектом класса.
I' Я использую WinUI 3 с C# для своего проекта.
Я просмотрел множество других подобных сообщений, в которых обсуждается привязка ComboBox ItemsSource к Dictionary и я почти уверен, что делаю все правильно.
Я даже тестировал код, используя объект Dictionary для привязки к ComboBox и это работает без проблем.
Но только когда я использую объект класса в качестве TValue, выдается эта ошибка:

Код: Выделить всё

Exception thrown: 'System.InvalidOperationException' in WinRT.Runtime.dll
Target type is not a projected type: App1.Sample
И отладчик показывает, что проблема возникает в obj.ItemsSource = value; в:

Код: Выделить всё

public static void Set_Microsoft_UI_Xaml_Controls_ItemsControl_ItemsSource(global::Microsoft.UI.Xaml.Controls.ItemsControl obj, global::System.Object value, string targetNullValue)
{
if (value == null && targetNullValue != null)
{
value = (global::System.Object) global::Microsoft.UI.Xaml.Markup.XamlBindingHelper.ConvertValue(typeof(global::System.Object), targetNullValue);
}
obj.ItemsSource = value;
}
...
Я пытался найти сообщения, в которых обсуждается эта ошибка, но не дал никаких решений.
Шаги по воспроизведению ошибки
  • Создайте новое пустое приложение, упакованное (WinUI 3 в настольной версии) в Visual Studio
  • Соответствующим образом добавьте следующий код:

Код: Выделить всё

MainWindow.xaml:








Код: Выделить всё

MainWindow.xaml.cs:
using Microsoft.UI.Xaml;
using System.Collections.Generic;

namespace App1 {
public sealed partial class MainWindow : Window {
public MainWindow() {
this.InitializeComponent();
Samples.Add("skdn", new());
}

public Dictionary Samples = new();

public class Sample {
public string Name { get; set; }
public Sample() {

}
}
}
}
  • Запустите приложение
Ожидаемое поведение
Приложение должно работать без ошибок.

Подробнее здесь: https://stackoverflow.com/questions/765 ... ject-throw
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • WPF Combobox ItemsSource привязка не работает
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Назначьте ввод Map> выходу Map>
    Anonymous » » в форуме JAVA
    0 Ответы
    125 Просмотры
    Последнее сообщение Anonymous
  • Конвертировать Map > для списка > используя API потока
    Anonymous » » в форуме JAVA
    0 Ответы
    100 Просмотры
    Последнее сообщение Anonymous
  • EF Core, вызывающий хранимую процедуру с использованием FromSql, выдает исключение InvalidOperationException
    Гость » » в форуме C#
    0 Ответы
    24 Просмотры
    Последнее сообщение Гость
  • FluentResults выдает исключение InvalidOperationException при получении или сериализации значения.
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»