Я получил ItemsControl
с Expander
в нем и в Expander
вид ProgressBars
inclued. Моя проблема в том, что когда я загружаю данные (это не моя проблема с производительностью), а затем я обновляю PropertyChanged из своего ItemSource
, мой gui зависает в течение длительного времени, потому что он так долго должен отображать.wpf render gui async
Есть ли способ, я могу redner элементы gui async, чтобы мой gui не замерзал ??? Я уже немного искал, хотя я не уверен, что мои результаты поиска решают мою проблему. Так что я прошу здесь, надеясь на хорошее решение.
Они гуй делает выглядеть примерно так .. хотя есть обычно больше элементов вы можете imageine в XAML код позади ...
private void RefreshOverview(){
...
foreach (Characteristic c in characteristics)
{
Area a = c.Area;
Characteristic c1 = c;
foreach (Line l in lines.Where(l => l.Product.Id == c1.Product.Id))
{
List<IMeasurementSchedule> measurementSchedules;
// take DefaultMeasurementSchedules if exists
if (c.DefaultMeasurementSchedules == null || c.DefaultMeasurementSchedules.Count == 0)
measurementSchedules = new List<IMeasurementSchedule>(l.LineMeasurementSchedules.ToArray());
else
measurementSchedules = new List<IMeasurementSchedule>(c.DefaultMeasurementSchedules.ToArray());
foreach (IMeasurementSchedule ms in measurementSchedules)
{
MeasureCharacteristic mc;
if (a.PeripheryEnabled)
{
Line l1 = l;
foreach (AreaItem ai in areaitems.Where(x => x.AreaId == a.Id && x.LineId == l1.Id))
{
mc = (from cm in _context.CharacteristicMeasures.Local
where cm.Charge == null &&
cm.Characteristic.Id == c.Id &&
cm.Line.Id == l.Id &&
cm.ShiftIndex.Id == actualShiftIndex.Id &&
cm.AreaItem != null &&
cm.AreaItem.Id == ai.Id &&
cm.MeasureScheduleId == ms.Id
select cm).FirstOrDefault() ??
new MeasureCharacteristic
{
Characteristic = c,
Line = l,
ShiftIndex = actualShiftIndex,
AreaItem = ai
};
mc.MeasureSchedule = ms;
characteristicsMeasures.Add(AddMeasures(mc));
}
}
else
{
mc = (from cm in _context.CharacteristicMeasures.Local
where cm.Charge == null &&
cm.Characteristic.Id == c.Id &&
cm.Line.Id == l.Id &&
cm.ShiftIndex.Id == actualShiftIndex.Id &&
cm.MeasureScheduleId == ms.Id
select cm).FirstOrDefault() ??
new MeasureCharacteristic {Characteristic = c, Line = l, ShiftIndex = actualShiftIndex};
mc.MeasureSchedule = ms;
characteristicsMeasures.Add(AddMeasures(mc));
}
}
}
}
MeasureCharacteristics = characteristicsMeasures;
MeasureCharacteristicsByType =
CharacteristicMeasureGroupedByType.GetExpanderViewProductItems(characteristicsMeasures);
}
тот мой код;) MeasureCharacteristicsByType является IEnumerable<CharacteristicMeasureGroupedByType>
я делать свяжите мой источник товаров. если вам нужна дополнительная информация, просто спросите !!!
UPDATE
вот моя ссылка на мой XAML код .. http://pastebin.com/UA777LjW
Вы не сможете визуализировать визуальные элементы в другом потоке, который является основным потоком графического интерфейса пользователя. Нам нужно увидеть, как ваш код предлагает некоторые обходные пути. – JYL
только что обновил мое сообщение .. если вам нужно больше информации, тогда просто спросите isntead о downvoting;) – JuHwon
FYI, это не я, который имеет downvoted. Более того, нам нужно, чтобы XAML понимал, где привязки. – JYL