У меня есть устаревшее приложение WPF C#, изначально написанное для .NET 4.6 и перенесенное на .NET 8.0. в одном из окон у меня есть поле со списком, которое вылетает при выборе любого его элемента. вылетает с такой ошибкой:
System.InvalidCastException: 'Unable to cast object of type 'System.Windows.Automation.Peers.ComboBoxAutomationPeer' to type '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