Сохранение путей изображения в XML, а затем возвращение изображения с результатами запроса - PullRequest
2 голосов
/ 13 января 2012

Я очень новичок в разработке, поэтому я пытаюсь создать небольшую программу, которая позволит пользователям искать имя сотрудника и возвращать другую информацию, включая фотографию персонала.

Создание его в WPF, с кодом C # и сведениями о персонале, сохраненными в файле XML.

Я могу получить информацию о сотрудниках из XML, выполнив поиск, но мне нужно также вернуть изображение, чтобы оно могло отображаться на табличке данных в качестве результатов.

Как лучше всего хранить информацию в XML и извлекать ее вместе с результатами поиска?

Заранее спасибо.

Mark

Ответы [ 2 ]

1 голос
/ 13 января 2012
     <Window.Resources>
            <DataTemplate x:Key="SearchResultsTemplate">
                <Grid Margin="4,0,4,8" Width="446" Height="68">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Border VerticalAlignment="Top" Margin="8" Padding="2" Background="White">
                        <Image Width="40" Height="40" Source="{Binding Path=Avatar, Mode=OneWay}" />
                    </Border>
                    <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="0,4,0,0">
                        <TextBlock x:Name="AuthorName" FontWeight="Bold" Text="{Binding Path=Author, Mode=OneWay}" />
                        <Grid Margin="0,6,0,0">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="2" />
                                <RowDefinition Height="Auto" />
                            </Grid.RowDefinitions>
                            <TextBlock x:Name="Message" TextWrapping="Wrap" />
                        </Grid>
                    </StackPanel>
             </Grid>
            </DataTemplate>
        </Window.Resources>
        <ScrollViewer  HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" BorderThickness="1">
 <ItemsControl x:Name="SearchResults" Margin="0,8,0,0" 
  Grid.Row="1" ItemTemplate="{StaticResource SearchResultsTemplate}" />
             </ScrollViewer>

Код:

 XDocument xdoc = XDocument.Load("data.xml");
 SearchResults.ItemsSource = from item in xdoc.Descendants("Item")
                             where (string)item.Element("Author") == searchInput
                             select new
                             {
                                Author = (string)item.Element("Author"),
                                Message = (string)item.Element("Message"),
                                Avatar = (string)item.Element("Avatar")
                            };
0 голосов
/ 13 января 2012

Я бы сказал, что вы должны сохранить путь (URI) изображений в вашем XML и получить этот путь с остальными подробными данными.Затем в DataTemplate вы можете установить свойство Images Source с привязкой к вашему пути, тогда оно должно работать.Если нет, то используйте конвертер, который возвращает BitMapImage с вашего пути.

Привязка источника изображения с конвертером

Если вы новичок в WPF и разрабатываете, вам следует прочитатьНекоторые книги о WPF и MVVM тоже интересны и хороший способ начать.;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...