ItemsControl
その中に がExpander
あり、その中にExpander
はビューが含まれていProgressBars
ます。私の問題は、データをロードしているときです (これは私のパフォーマンスの問題ではありません)。その後、ItemSource
私の GUI の PropertyChanged を更新すると、レンダリングに時間がかかるため、長い間フリーズします。
私のGUIがフリーズしないように、GUI要素を非同期に赤くする方法はありますか??? すでに少し検索しましたが、検索結果が問題を解決するかどうかはわかりません。だから私はここで質問しています。良い解決策を期待しています。
彼らのGUIはこのように見えます..通常、 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>
アイテムソースをバインドするものです。さらに情報が必要な場合は、お問い合わせください!!!
アップデート
これが私のxamlコードへのリンクです.. http://pastebin.com/UA777LjW