2009-07-30 9 views
3

私はWPFとLINQの新機能であり、仕事中にプロジェクトで作業中にそれを学ぶのに苦労していると言い始めます。締め切り前に事を学び、プロジェクトを完了してください!)。とにかく、ObservableCollectionの背後にあるコードでバインドされている従業員のリストボックスがあります。コレクションのデータソースは、IQueryable型のLINQクエリです。WPFを使用してデータバインドされたListBoxのフィールドを連結する

私がしようとしているのは、リストボックスにLastName + "、" + FirstName形式を表示することです。それをどのようにプルするかわかりません。これは表示のためのものであり、データには何ら影響しません。私は、LINQのための新しい構文を選択して使用しようとしましたが、クエリがIQueryableを返すためフィールドが従業員に属していないため、機能しません。リストボックスのオブジェクトは、従業員オブジェクトである必要があります。これは、異なる理由で、フォームをデータベースに保存したり、他のリストボックスに移動したりできるためです。

私はここにどこに行くのか分かりません。私は非常に明確にしなければ申し訳ありません。私が何をする必要があるかについてさらに質問がある場合は、遠慮なく尋ねてください。私は答えようとします。ありがとう!

<ListBox ItemSource="{Binding Employees}"> 
    <ListBox.Resources> 
     <DataTemplate TargetType="{x:Type local:Employee}"> 
      <StackPanel> 
       <TextBlock Text="{Binding Path=LastName}" /> 
       <TextBlock Text=", " /> 
       <TextBlock Text="{Binding Path=FirstName}" /> 
      <StackPanel> 
     </DataTemplate> 
    </ListBox.Resources> 
</ListBox> 

、リストボックスは、その項目を表示しようとしますが、EmployeeUIElementではありません:あなたはEmployeeLastNameFirstName性質を持つタイプで、その後、このようなものが動作するはずObservableCollection<Employee>を、持っていると仮定し

+0

コードを投稿すると、より良い回答が得られます。 –

+0

この質問は主にWPFと関係がある。この場合、LINQは赤いニシンです。 –

答えて

2

マルチバインディングとStringFormatを使用すると、これを非常に簡単に行うことができます。 あなたのリストボックスに

+0

MultiBindingはより洗練されたソリューションで、3.5SP1を使用できるユーザーのみが利用できます。 –

1

そのタイプの提示を記述するテンプレートを検索します。ちょうどそれを行うListBoxのリソースにはDataTemplateが埋め込まれています。

関連する問題