【问题标题】:WPF ListView Binding showing class namespaceWPF ListView 绑定显示类命名空间
【发布时间】:2014-12-08 15:02:18
【问题描述】:

我的 XAML 中有一个 ListView 定义为

<vm:JobListView x:Name="JobEditor" ItemsSource="{Binding Path=JobListViewSource}">
    <ListView.View>
        <GridView AllowsColumnReorder="False">
            <GridViewColumn Width="10" HeaderContainerStyle="{DynamicResource FirstColumnGridViewColumnHeader}" CellTemplate="{StaticResource EmptyColumnTemplate}" />
            <vm:SortListViewColumn Header="Description" Width="100" SortProperty="Description" SortStyle="JobDataGridViewColumnHeader" CellTemplate="{StaticResource DescriptionColumnTemplate}" />

            <vm:SortListViewColumn Header="Staff" Width="100" SortProperty="Staff.FirstName" SortStyle="JobDataGridViewColumnHeader" CellTemplate="{StaticResource StaffColumnTemplate}" />

            <vm:SortListViewColumn Header="Client" Width="50" SortProperty="Client.Name"  SortStyle="JobDataGridViewColumnHeader" CellTemplate="{StaticResource ClientColumnTemplate}" />

            <vm:SortListViewColumn Header="Samples" Width="100" SortProperty="Samples" SortStyle="JobDataGridViewColumnHeader" CellTemplate="{StaticResource SamplesNoColumnTemplate}" />

            <vm:SortListViewColumn Header="Entry Date" Width="100" SortProperty="EntryDate" SortStyle="JobDataGridViewColumnHeader" CellTemplate="{StaticResource EntryDateColumnTemplate}" />

            <GridViewColumn Width="10" CellTemplate="{StaticResource EmptyColumnTemplate}" />
        </GridView>
    </ListView.View>
</vm:JobListView>

vm:JobListView 是一个继承自 ListView 的类

CellTemplate 的定义如下:-

<!-- description column -->
<DataTemplate x:Key="DescriptionColumnTemplate">
    <TextBox Style="{StaticResource ReadOnlyTextBlockStyle}" Text="{Binding Path=Description}" />
</DataTemplate>

ItemsSource 绑定到我的 VM 上的一个属性,定义如下:-

public ICollectionView JobListViewSource
{
    get { return Get(() => JobListViewSource); }
    set { Set(() => JobListViewSource, value); }
}

我这样设置属性:-

CollectionViewSource source = new CollectionViewSource();
source.Source = this.Jobs;
this.JobListViewSource = source.View;

其中 Jobs 是 Job 对象的 ObservableCollection

我在网格中显示的只是 Job 对象的命名空间,而不是每列中的单个属性

我做错了什么?

【问题讨论】:

    标签: c# wpf xaml data-binding binding


    【解决方案1】:

    尝试使用

    this.JobListViewSource.SourceCollection=this.Jobs 而不是

    CollectionViewSource source = new CollectionViewSource();
    source.Source = this.Jobs;
    this.JobListViewSource = source.View;
    

    【讨论】:

    • 另外定义 CollectionViewSource 类型的 JobListViewSource 并使用它的 Source 属性 this.JobListViewSource.Source=this.Jobs;
    猜你喜欢
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2016-03-08
    相关资源
    最近更新 更多