2014-03-03 2 views
3

내 BindableCollection에 대한 바인딩 목록을 가져 왔지만 파일 이름 만 표시하려고합니다.WPF에서 DTO 바인딩

내가 노력
<ListBox x:Name="Attachments" Grid.Row="2" ItemsSource="{Binding Files}" /> 

{Files.Filename를 바인딩} 중 하나가 작동하지 않습니다 : 현재 그것은 "DTO"

public class FilesDTO : IDTO 
{ 
    public int Id { get; set; } 
    public string FileName { get; set; } 
    public string FileExtension { get; set; } 
    public byte[] FileArray { get; set; } 
} 

using (var ctx = DB.Get()) 
    { 
     Files = new BindableCollection<FilesDTO>(ctx.Files.Select(x => new FilesDTO { FileArray = x. FileArray, FileExtension = x.FileExtension, FileName = x.FileName, Id = x.Id })); 
    } 

XAML 측을 표시합니다. 내 생각 엔 바인딩 할 속성을 만드는 중입니다. S

답변

2

회원을 적절하게 표시하려면 ItemsTemplate을 설정해야합니다.

<ListBox x:Name="Attachments" Grid.Row="2" ItemsSource="{Binding Files}"> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <TextBlock Text="{Binding Path=FileName}" /> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
2

설정 DisplayMemberPath :

<ListBox DisplayMemberPath="FileName" /> 
예를 들어, 다음은 TextBlock 간단한을 사용하여 파일의 목록이 표시됩니다