设置itemsource后,datagrid中的Silverlight控件上未显示数据
我已经搜索了一段时间,但我所做的任何尝试都没有解决这个问题。下面的代码执行时没有错误,但模板中没有显示任何数据设置itemsource后,datagrid中的Silverlight控件上未显示数据,silverlight,binding,datagrid,Silverlight,Binding,Datagrid,我已经搜索了一段时间,但我所做的任何尝试都没有解决这个问题。下面的代码执行时没有错误,但模板中没有显示任何数据 <UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="GOReviewSL.UserControls.Announcements" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre
<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="GOReviewSL.UserControls.Announcements"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="75" d:DesignWidth="280" xmlns:my="clr-namespace:Local;assembly=Local">
<Grid x:Name="LayoutRoot" Background="White">
<my:Fieldset Height="Auto" HorizontalAlignment="Left" Name="fieldset1" VerticalAlignment="Top">
<StackPanel VerticalAlignment="Top" Orientation="Vertical">
<sdk:DataGrid x:Name="AnnouncementsGrid" ItemsSource="{Binding}">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Top" Orientation="Vertical">
<HyperlinkButton x:Name="AnnouncmentTitleLink" FontWeight="Bold" Content="{Binding Title}" Click="AnnouncmentTitleLink_Click" />
<TextBlock x:Name="AuthorText" Text="{Binding Author}" FontSize="10" FontStyle="Italic"/>
<TextBlock x:Name="AnnouncementText" Text="{Binding Title}"/>
</StackPanel>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</StackPanel>
</my:Fieldset>
<Image Source="/GOReviewSL;component/Images/announcements.png" Height="20" HorizontalAlignment="left" Margin="20,1,0,0" VerticalAlignment="Top"/>
</Grid>
我的绑定代码:
public Announcements()
{
InitializeComponent();
objController.ListAnnouncementsCompleted += new EventHandler<ListAnnouncementsCompletedEventArgs>(objController_ListAnnouncementsCompleted);
objController.ListAnnouncementsAsync();
}
void objController_ListAnnouncementsCompleted(object sender, ListAnnouncementsCompletedEventArgs e)
{
var objAnnouncements = from el in e.Result
select el;
AnnouncementsGrid.DataContext = objAnnouncements.ToList();
AnnouncementsGrid.ItemsSource = objAnnouncements.ToList();
}
公告()
{
初始化组件();
objController.ListAnnouncementsCompleted+=新事件处理程序(objController\u ListAnnouncementsCompleted);
objController.ListAnnouncementsAsync();
}
void objController\u ListAnnouncementsCompleted(对象发送方,ListAnnouncementsCompletedEventArgs e)
{
var objannounces=来自e.结果中的el
选择el;
AnnouncementsGrid.DataContext=objannounces.ToList();
AnnouncementsGrid.ItemsSource=objannounces.ToList();
}
最后一点我已经改了好几次了。任何帮助都将不胜感激 虽然代码中有一些冗余调用,但代码应该可以工作:
// This is not necessary, and neither is ItemsSource="{Binding}"
//AnnouncementsGrid.DataContext = objAnnouncements.ToList();
AnnouncementsGrid.ItemsSource = objAnnouncements.ToList();
您应该检查objannounces.ToList()是否确实有值。在其上设置断点
检查事项:
代码应该可以工作,尽管其中有一些冗余调用:
// This is not necessary, and neither is ItemsSource="{Binding}"
//AnnouncementsGrid.DataContext = objAnnouncements.ToList();
AnnouncementsGrid.ItemsSource = objAnnouncements.ToList();
您应该检查objannounces.ToList()是否确实有值。在其上设置断点
检查事项:
尝试将您的
网格
绑定到可观察集合
。首先,我使用List,在加载DataGrid时遇到了很多问题。建议在Silverlight中使用ObservableCollection
,而不是List
使用System.Collections.ObjectModel;
可观察的收集公告收集;
公众可观测收集公告收集
{
获取{return announcementCollection;}
设置
{
宣告收集=价值;
NotifyPropertyChanged(“公告集合”);
}
}
尝试将您的网格
绑定到可观察集合
。首先,我使用List,在加载DataGrid时遇到了很多问题。建议在Silverlight中使用ObservableCollection
,而不是List
使用System.Collections.ObjectModel;
可观察的收集公告收集;
公众可观测收集公告收集
{
获取{return announcementCollection;}
设置
{
宣告收集=价值;
NotifyPropertyChanged(“公告集合”);
}
}
谢谢。这很有帮助。数据在那里,但没有显示出来。这有助于解决这个问题。谢谢你,因为你和下面的评论都有助于解决这个问题。谢谢。这很有帮助。数据在那里,但没有显示出来。这有助于解决这个问题。谢谢你,因为你和下面的评论都帮助解决了这个问题。部分问题被掩盖了。现场设置帮助隐藏了这一点。我能够移除字段集以找到它,并在调整位置后将其添加回。(字段集是一个类似于HTML字段集的对象)。谢谢你,因为你和上面的评论都帮助解决了这个问题。部分问题被掩盖了。现场设置帮助隐藏了这一点。我能够移除字段集以找到它,并在调整位置后将其添加回。(字段集是一个类似于HTML字段集的对象)。谢谢你,因为你的和上面的评论都帮助解决了这个问题。我也遇到了这个问题,尽管row.count是正确的,但在网格中只显示空白。我也遇到了这个问题,尽管row.count是正确的,但在网格中只显示空白。
using System.Collections.ObjectModel;
ObservableCollection<Announcement> announcementCollection;
public ObservableCollection<Announcement> AnnouncementCollection
{
get { return announcementCollection; }
set
{
announcementCollection = value;
NotifyPropertyChanged("AnnouncementCollection");
}
}