현재 SQL Server DB가 있으며 기사와 해당 이미지를 WPF의 DataGrid에 표시하려고합니다. 아티클을 얻으려면 아무런 문제가 없지만 이미지를 표시하고 표시하는 데 문제가 있습니다. 이것은 꽤 오래된 프로젝트이므로 이미지는 방금 파일 이름이 아니라 얼룩이므로 웹 사이트 경로도 표시해야합니다. 예 : www.mysite.com/images/imagenameWPF의 DataGrid에 이미지 경로 표시
저는 EF를 사용하고 있으며, 모델에서 기사 (GetAllArticles)를 검색 한 다음 다른 2 가지 방법 (하나는 imagesbypage 검색, 다른 하나는 이미지 검색)이 있습니다. 2 가지 방법에 대한 뷰를 사용할 수 있지만 LINQ를 사용하고 있으며이 두 가지 방법을 함께 사용하는 방법에 익숙하지 않습니다.
그래서 모델은 다음과 같이이다 : - 실제 WPF에서
public List<HS_Articles>GetAllArticles()
{
var res = from art in HSEntities.HS_Articles select art;
return res.ToList();
}
public List<HS_Images_Pages> GetImagesByPage(int pageId, int subPageId)
{
var res = HSEntities.HS_Images_Pages.Where(img => img.im_page_id == pageId && img.sub_page_id == subPageId);
return res.ToList();
}
public HS_Images GetImage(int imgId)
{
var res = HSEntities.HS_Images.Where(img => img.im_id == imgId);
return res as HS_Images;
}
다음과 같이 내가 DataGrid에 바인딩하고있다 : -
private void LoadArticles()
{
var articlesDal = new ArticlesDAL();
var items = new List<HS_Articles>();
items = articlesDal.GetAllArticles();
dgArticles.ItemsSource = items;
dgArticles.Items.Refresh();
}
그리고 데이터 격자는 다음과 같다 : -
을 <DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=ArticleID}" Header="ID" SortMemberPath="ArticleID" Width="30" />
<DataGridTextColumn Binding="{Binding Path=Title}" Header="Title" SortMemberPath="Abstract" Width="250">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Date" SortMemberPath="AddedDate" Binding="{Binding AddedDate}" Width="150" />
<DataGridTextColumn Binding="{Binding Path=Abstract}" Header="Abstract" SortMemberPath="Abstract" Width="450">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Path=AddedBy}" Header="Added By" SortMemberPath="AddedBy" Width="150" />
<DataGridTemplateColumn Header="Image">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Path=im_name, Mode=OneWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
어떻게 할 수 있습니까? 여러분의 도움과 시간
안녕하세요, 귀하의 회신에 감사드립니다. 나는 실제로 모든 이미지의 바이트를 얻기 위해 작은 컨버터 앱을 작성하여 데이터베이스 자체에서 표시 할 수 있도록하기로 결정했습니다. 내 웹 앱을 만들 때도 이것이 최선의 방법이라고 생각합니다. – Johann
쿨 ... 변환기를 직접 작성했거나 어딘가에 가져 왔습니까? 소스를 공유 할 수 있다면 커뮤니티가보고 싶어 할 것이라고 확신합니다. – Rhyous