2012-01-13 13 views
2

私は開発が非常に新しいので、ユーザーが従業員の名前を検索してスタッフを含む他の情報を返すための小さなプログラムを作成しようとしています写真。XMLで画像パスを保存してからクエリ結果を返す画像

WPFでビルドし、C#コードの背後に、スタッフの詳細をXMLファイルに格納します。

私は検索によってXMLからスタッフの詳細を得ることができますが、イメージを返す必要がありますので、結果としてデータテンプレートに表示することができます。

XMLに情報を保存し、検索結果とともにその情報を取得するにはどうすればよいですか?

ありがとうございます。

マーク

答えて

1
 <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

ねえ、それは素晴らしいですね。私はそれを試し、私が探していたものを私に与えるかどうかを見ます。 – markhlong

+0

このコード例は、私が探していたことをするのに役立ちました。ご協力いただきありがとうございます! – markhlong

+0

あなたは歓迎です:)。 – Hukam

0

私はあなたのXML内の画像のパス(URI)を格納し、詳細データの残りの部分と、このパスを取得する必要がありますと言うでしょう。次に、DataTemplateでは、Image SourceプロパティをBindingでパスに設定することができます。そうでない場合は、あなたのパスからBitMapImageを返すコンバータを使用してください。

Image Source Binding with a Converter

あなたはWPFに新しいですし、開発した場合、あなたはそれが面白いと開始するには良い方法ですあまりにもWPFとMVVMに関するいくつかの本を読んでください。 ;)の後ろ

+0

イメージファイルへのパスを返し、あなたのデータオブジェクトの文字列型のプロパティにImageコントロールのSourceプロパティをバインドする場合は(人を言います。 ImagePath)を使用すると、コンバータは必要ありません。値の変換は自動的に行われます。 – Clemens

+0

それもうまくいけばわかりませんでしたので、彼はコンバータでそれをやることができると書いていました。 :) – BigL

+0

両方のおかげで、私はすべての提案を試してみるつもりだ、私はこれを行うさまざまな方法を学ぶことができます。間違いなく、WPFなどの書籍やリソースを手に入れようとしていますか。 – markhlong

関連する問題