У меня есть устаревшее приложение 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
Сбой поля со списком пользовательского интерфейса в приложении WPF C# .NET 8.0 ⇐ C#
Место общения программистов C#
1761416522
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));
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79793837/ui-combobox-crashes-in-wpf-c-sharp-net-8-0-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия