У меня есть DataGrid с несколькими привязками для каждого столбца. Один столбец для изображения. Я уже нашел, что следующий способ работает для привязки изображений в wpf DataGrid.WPF: привязка одного и того же изображения к нескольким строкам в DataGrid (улучшение производительности)
<DataGridTemplateColumn Header="" Width="SizeToCells" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Width="16" Height="16" Source="{Binding imagePathStatus, IsAsync=True}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
public class DataGridObject
{
public String imagePathStatus { get; set; }
...
}
Это состояние и есть 3 типа. Тот же тип означает ту же картину. У меня было много проблем, связанных с производительностью пользовательского интерфейса. Особенно, когда моя фоновая задача вызывает пользовательский интерфейс после установки статуса одного столбца. Но также инициализация GridView (без каких-либо других потоков, помимо пользовательского интерфейса) занимает много времени. Проблема заключается в деактивации столбца изображения.
Я ищу сейчас часами и много пробовал.
Я уже поместить изображения в ресурсы и использует их через
this.imagePathIcon = "pack://application:,,,/Etlxxx;component/GraphicUserInterface/Images/image.jpg";
объявляю связывание с асинхронном, так по крайней мере, интерфейс не будет замерзать.
На мой взгляд, проблема в том, что каждая строка загружает изображение, даже если оно использует одно и то же изображение. Наверное, потому что я просто связал путь. По моим сведениям, нет способа напрямую привязать образ.
Все работает нормально. Но я вижу, что каждое изображение загружается отдельно. Я действительно смущен.
Фотографии действительно маленькие (16x16), но все же замедляют работу всего приложения.
Есть ли способ связать одно и то же изображение с несколькими строками в DataGrid. В идеале приложение должно загружать изображение один раз и отображать его сразу в каждой строке, где он принадлежит.
Благодарим за помощь!
«По моим сведениям, не существует способа непосредственного связывания изображение". Это неправда. Объявить свойство типа «ImageSource», например. 'public ImageSource StatusImage {get; задавать; } 'и назначить BitmapImage, например' StatusImage = new BitmapImage (новый Uri ("pack: // application: ,,, Etlxxx; component/GraphicUserInterface/Images/image.jpg")) '. Затем привяжите свойство «Источник» элемента управления Image, например ' ' –
Clemens
. Это решило проблему. Большое спасибо. Возможно ли отметить ваш комментарий как решение? – theawak3r