powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Привязать изображение из интернет к Image декларативно
11 сообщений из 11, страница 1 из 1
Привязать изображение из интернет к Image декларативно
    #36635289
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть в общем DataGrid, у него нечто такое:

Код: plaintext
1.
2.
3.
4.
<DataGrid.RowDetailsTemplate>
        <DataTemplate>
              <Image Name="img" Source="{Binding Path=ImageID, StringFormat=http://ляляля/GetImage.ashx?\{0\}}" />             
        </DataTemplate>
      </DataGrid.RowDetailsTemplate>

Так вот, не загружается картинко... А вот если прописать тоже самое кодом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    private void dataGridView_LoadingRowDetails(object sender, DataGridRowDetailsEventArgs e)
    {
      var _image = e.DetailsElement.FindName("img") as Image;
      BitmapImage bi3 = new BitmapImage();
      bi3.BeginInit();
      bi3.UriSource = new Uri(string.Format(@"http://ляляля/GetImage.ashx?{0}", 
(e.Row.Item as System.Data.DataRowView)["ImageID"]), UriKind.Absolute);
      bi3.EndInit();
      _image.Source = bi3;
    }

То все нормально. Почему? Как добиться чтоб работало декларативно?
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36635449
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Datar,

а вот тут кавычки ееще
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636003
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кавычки не помогают. Может из-за того что ImageID есть guid
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636161
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да что тут гадать, юзайте модель своего представления, в которой производите вычисления путей:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
class MainViewModel : ViewModelBase
{
    public string ImgUrl { get; set; }
    public MainViewModel(List<Book> books)
    {
        ImgUrl = "http://www.sql.ru/forum/members/92081.gif";
    }
}

Код: plaintext
<Image Source="{Binding ImgUrl}" />

P.S. У вас DataGrid, следовательно вынестите свою ObservableCollection коллекцию с уже сформированными путями к картинкам.

Код: plaintext
public ObservableCollection<Item> ItemList { get; set; } 

Код: plaintext
<DataGrid ItemsSource="{Binding UsersList}" ... />

Декларативно остается только забиндиться и всё.
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636567
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ, не думаю что я понял о чем вы говорите. У меня нет ни модели ничего другого. DataGrid привязывается непосредствено к таблице типизированного DataSet.
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636637
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DatarМСУ, не думаю что я понял о чем вы говорите.
Я говорю о ViewModel (модель+представление).
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636719
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор заюзай converter и не парься.
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636951
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУDatarМСУ, не думаю что я понял о чем вы говорите.
Я говорю о ViewModel (модель+представление).

Кажется я понял что вы имеете ввиду. Однако не все так просто оказалось. Я конечно через партиальные классы могу сделать некое свойство на типизированом DataSet и даже привязать его к myTypedDataSet.myTypedRow. Но как оказалось, датасеты биндяться не напрямую, а через DataView. И вот здесь, самое интересное, черехз DataView эти добавленные свойства не видны.

Из ситуации можно выйти, если поменять привязку, например на
DataGrid.DataContext = variableWithDataTable.Cast<myTypedDataSet.myTypedRow>();
но так пропадает у DataGrid автоматическая генерация столбцов и проверка на null. Первое в принципе не так страшно, столбцы можно и ручками делать. А вот второе нет, ибо почему-то DataGrid заместо нормального typedRow.IsMyFieldNull() усилено пытается само MyField показать что выливается в Exception.

Как решить?
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36636992
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DatarКак решить?
Забыть про датасеты и типизированные датасеты. Биндиться к "правильным" коллекциям - ObservableCollection.
P.S. Если откуда-то извне к Вам приходит датасет - типизируйте его через свои врапперы, которые на выходе отдадут нормальный типизированную коллекцию.
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36637043
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не готов с вами согласится, ибо в моем случае коллекции реулизуют худщий функционал. Ключевое слово здесь - отсоидененный набор данных. С нулом я понял как бороться, через создание еще одного поля и последующей привязки :-)
...
Рейтинг: 0 / 0
Привязать изображение из интернет к Image декларативно
    #36637117
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DatarНе готов с вами согласится, ибо в моем случае коллекции реулизуют худщий функционал.
Ну так это, как мне видится, проблемы Вашего "плохого" функционала, а не хорошего тона программирования

DatarКлючевое слово здесь - отсоидененный набор данных. С нулом я понял как бороться, через создание еще одного поля и последующей привязки :-)
Про отсоединенные наборы и прочие фишки ADO.NET - откройте для себя ORM (NHibernate, EF, Linq to SQL).
P.S. А какие сложности с нулом-то? Если Вы о DbNull.Value - транспонируйте его в объектный null. Какие тут сложности.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Привязать изображение из интернет к Image декларативно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]