c# – WPF Listview数据绑定到通用List,由WCF服务动态填充
发布时间:2020-12-16 00:12:36 所属栏目:百科 来源:网络整理
导读:在 WPF应用程序中,我有一个WCF服务,它从后端数据库动态填充通用List对象. 在这种情况下(在运行时创建列表),我可以将List项绑定到ListView对象项吗? 它是我的Web服务的数据合同: ....[DataContract]public class MeetList{ [DataMember] public string Meet
在
WPF应用程序中,我有一个WCF服务,它从后端数据库动态填充通用List对象.
在这种情况下(在运行时创建列表),我可以将List项绑定到ListView对象项吗? 它是我的Web服务的数据合同: .... [DataContract] public class MeetList { [DataMember] public string MeetDate; [DataMember] public string MeetTime; [DataMember] public string MeetDescr; ..... static internal List<MeetList> LoadMeetings(string dynamicsNavXml) { ...// Loads XML stream into the WCF type } 在这个事件处理程序中,我读取了WCF服务并通过List对象循环: private void AllMeetings() { Customer_ServiceClient service = new Customer_ServiceClient(); foreach (MeetList meet in service.ReadMeetList()) { ?????? = meet.MeetDate; // it's here that I bumped into a problem ?????? = meet.MeetTime; // ?????? = meet.MeetDescr;// } } 我的Listview XAML: <Grid> <ListView Height="100" Width="434" Margin="0,22,0" Name="lvItems" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" SelectionMode="Single"> <ListView.View> <GridView> <GridViewColumn Header="Date" Width="100" HeaderTemplate="{StaticResource DateHeader}" CellTemplate="{DynamicResource DateCell}"/> <GridViewColumn Header="Time" Width="100" HeaderTemplate="{StaticResource TimeHeader}" CellTemplate="{DynamicResource TimeCell}"/> <GridViewColumn Header="Description" Width="200" HeaderTemplate="{StaticResource DescriptionHeader}" CellTemplate="{DynamicResource DescriptionCell}"/> </GridView> </ListView.View> </ListView> </Grid> 和ListView的数据模板: <Window.Resources> <DataTemplate x:Key="DateHeader"> <StackPanel Orientation="Horizontal"> <TextBlock Margin="10,0" Text="Date" VerticalAlignment="Center" /> </StackPanel> </DataTemplate> <DataTemplate x:Key="DateCell" DataType="Profile"> <StackPanel Orientation="Horizontal"> <TextBlock> <TextBlock.Text> <Binding Path="MeetDate" /> </TextBlock.Text> </TextBlock> </StackPanel> </DataTemplate> ...... 在这种情况下(在运行时创建列表),我可以将我的通用List项绑定到ListView对象项? 我试图使用lvItems.ItemsSource = profiles;,但它在我的事件处理程序中不起作用 解决方法
列表没有通知项目计数已更改的行为.您应该使用支持INotifyCollectionChanged的列表,例如:ObservableCollection< T>.的ObservableCollection< T>将通知您的lvItems项目计数已更改,并将正确显示.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |