Сбой поля со списком пользовательского интерфейса в приложении WPF C# .NET 8.0C#

Место общения программистов C#
Ответить
Anonymous
 Сбой поля со списком пользовательского интерфейса в приложении WPF C# .NET 8.0

Сообщение Anonymous »

У меня есть устаревшее приложение WPF C#, изначально написанное для .NET 4.6 и перенесенное на .NET 8.0. В одном из окон у меня есть поле со списком, которое дает сбой при выборе любого его элемента.
Он вылетает из-за этой ошибки:

System.InvalidCastException: невозможно привести объект типа «System.Windows.Automation.Peers.ComboBoxAutomationPeer» к типу 'System.Windows.Automation.Provider.IScrollProvider'

Вот разметка xaml:
Comercial:





Вот код, в котором это используется:
public void LoadCaptadores()
{
try
{
AccessDB db = new AccessDB();
SqlDataReader dr = db.ExecuteReturnSqlDataReader("SELECT id, nombre, apellidos FROM Captador");

var itemsCaptador = new List();
var itemsCaptador1 = new List();
var itemsCaptador3 = new List();

itemsCaptador.Add(new ComboBoxItem { Tag = "-1", Content = "Captador" });
itemsCaptador1.Add(new ComboBoxItem { Tag = "-1", Content = "Captador" });
itemsCaptador3.Add(new ComboBoxItem { Tag = "-1", Content = "Usuario" });

if (dr != null)
{
while (dr.Read())
{
string id = dr.GetValue(0).ToString();
string fullName = $"{dr.GetValue(1)} {dr.GetValue(2)}";

itemsCaptador.Add(new ComboBoxItem { Tag = id, Content = fullName });
itemsCaptador1.Add(new ComboBoxItem { Tag = id, Content = fullName });
itemsCaptador3.Add(new ComboBoxItem { Tag = id, Content = fullName });
}
}
else
{
w.Dispatcher.Invoke(() => w.ShowNotif(2));
}

db.Close();

Dispatcher.Invoke(() =>
{
captador.Items.Clear();
captador1.Items.Clear();
captador3.Items.Clear();

foreach (var item in itemsCaptador)
captador.Items.Add(item);
foreach (var item in itemsCaptador1)
captador1.Items.Add(item);
foreach (var item in itemsCaptador3)
captador3.Items.Add(item);

captador.SelectedIndex = 0;
captador1.SelectedIndex = 0;
captador3.SelectedIndex = 0;
});
}
catch (Exception)
{
w.Dispatcher.Invoke(() => w.ShowNotif(2));
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... et-8-0-app
Ответить

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

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

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

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

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