0

我写的很简单WPF Application,我想用来ListView显示List项目。我的代码是:

WPF.xaml

<ListView Grid.Column="0" Grid.Row="1" Margin="10,0,10,5" ItemsSource="{Binding MyCollection.Elements}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding ElementDescriptions}" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

WPF.xaml.cs

public MyViewModel ViewModel
    {
        get { return DataContext; }
        set { DataContext = value; }
    }

MyViewModel.cs

public OwnedCollection Elements { get; set; }

OwnedCollection.cs

public List<ElementDescriptions> ElementDescriptions { get; set; }

我 100% 确定 和 之间的沟通ViewViewModel正确的,因为显示简单的信息不会给我带来麻烦。我在做正确的绑定ListView吗?

4

1 回答 1

0

几件事:

第一的,

TextBlock Text="{Binding ElementDescriptions}"

没有多大意义,因为 ElementDescriptions 是一个集合。如果您想遍历 List 中的所有 ElementDescriptions,您实际上应该将 ListView 的 ItemSource 绑定到 ElementDescriptions,然后访问 ElementDescriptions 类的一些文本属性:

<ListView Grid.Column="0" Grid.Row="1" Margin="10,0,10,5" ItemsSource="{Binding MyCollection.ElementsElementDescriptions }">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ElementDescriptions.SomeTextField}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

其次,您是否使用 INotifyPropertyChanged 以便视图知道更新?更多信息:OnPropertyChanged with a List

于 2013-01-10T19:51:46.010 回答