2013-11-30 4 views
0

My ListBox Управление работает нормально, за исключением того, что данные, которые необходимо привязать, не отображаются.ListBox не привязывает данные

Мой XAML:

<ListBox x:Name="listFileNames" SelectionMode="Single" Margin="10"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="60"></ColumnDefinition> 
        <ColumnDefinition Width="*"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <Image Margin="5" Source="{Binding Path=Image}" Stretch="Fill" Width="50" Height="50"></Image> 
       <StackPanel Grid.Column="1" Margin="5"> 
        <TextBlock Text="{Binding Path=FileName}" FontWeight="Bold"></TextBlock> 
        <TextBlock Text="{Binding Path=State}"></TextBlock> 
        <TextBlock Text="This text shows..."></TextBlock> 
       </StackPanel> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Мой код:

public struct StyleDocumentFile 
{ 
    public string Image; 
    public string FileName; 
    public string State; 
} 

// ...... 

StyleDocumentFile sdf = new StyleDocumentFile() 
{ 
    Image = "/Images/Loading.png", 
    FileName = "abc", 
    State = "Extracting Data...", 
}; 

this.listFileNames.Items.Add(sdf); 
+1

Есть ли сообщения в окне отладки? –

+0

Было да. Я не понимал, что WPF это сделал. Сказал, что свойства не найдены. ebattulga ниже нашел ответ. – rhughes

ответ

1

Изменение полей в собственности. После этого все работает нормально.

public struct StyleDocumentFile 
{ 
    public string Image { get; set; } 
    public string FileName { get; set; } 
    public string State { get; set; } 
} 
0

Вы должны установить ItemsSource в определении ListBox как ItemsSource="{Binding Model.Items}". Кроме того, вы должны позвонить RaisePropertyChanged в setter свойств модели.

Смежные вопросы