简体   繁体   English

ListBox没有数据绑定

[英]ListBox not databinding

My ListBox control is working fine, except that the data to be bound is not displaying. 我的ListBox控件工作正常,但没有显示要绑定的数据。

My XAML: 我的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>

My code: 我的代码:

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);

Change fields to Property. 将字段更改为属性。 After this, all works fine. 在此之后,一切正常。

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

You should set ItemsSource in ListBox definition like ItemsSource="{Binding Model.Items}" . 您应该在ListBox定义中设置ItemsSource ,例如ItemsSource="{Binding Model.Items}" In addition you must call RaisePropertyChanged in setter of model properties. 另外,您必须在模型属性的setter中调用RaisePropertyChanged

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM