这是我在StackOverflow上的第一个问题!我使用这个网站已经很久了,但是我从来没有问过什么,因为我总是在别人的问题lol中找到答案,显然这不再是这样了。
无论如何,我正在尝试将一个自定义类的列表(该类修饰为与管理本地SQLServerCE3.5数据库的DataContext一起使用--本机包含在Windows 7.5中)从WPToolkit绑定到ListPicker控件,奇怪的是,我看不到绑定在ListPicker中的元素的值(我确保了列表被填充)。
这是一堂课:
[Table(Name = "Rubriques")]
class Rubrique
{
[Column(IsPrimaryKey = true, DbType = "TINYINT", CanBeNull = false)]
public Byte Id { get; set; }
[Column(DbType = "NVARCHAR(40)")]
public String Nom { get; set; }
}这是DataContext
class IntermediaireDataContext : DataContext
{
public IntermediaireDataContext() : base("Data Source='isostore:/IntermediaireBDD.sdf';")
{
}
public Table<Rubrique> Rubriques
{
get { return this.GetTable<Rubrique>(); }
}
}下面是我用来将列表绑定到ListPicker的代码
using (IntermediaireDataContext context = new IntermediaireDataContext())
{
rubs = (from x in context.Rubriques select x).ToList<Rubrique>(); //rubs already exists
RubListPicker.ItemsSource = rubs;
}以下是XAML:
<toolkit:ListPicker x:Name="RubListPicker" SelectionMode="Single" FullModeHeader="Rubriques">
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Nom}" FontSize="16"/>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Nom}" FontSize="26" FontWeight="Bold"/>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>Rubrique rubs的列表被填充,并被设置为ItemsSource为RubListPicker,如果在DataTemplate中删除TextBlock的Text="{Binding Nom}",则可以在ListPicker中的每个元素中看到类MyNamespace.Rubrique的名称。
我不知道数据绑定有什么问题.如能提供任何帮助,将不胜感激:)
我正在使用VisualStudio2012.10.30中的WPToolkit 4.2012.10.30的最后一个版本,最后一个版本是Windows 8 SDK。
谢谢你抽出时间阅读这篇文章!
致以敬意,
阿里
编辑
我找到了解决办法,这让我笑得很痛快。
我不得不改变班里鲁布里克的安全等级;当我把它公诸于众时,一切都很好。
实际上,ListPicker可以访问List<Rubrique>,但不能访问每个Rubrique的值。
今后要记住的一个好方法是:在使用外部库时,始终检查类/属性/方法的安全级别。
发布于 2013-02-09 23:37:26
这是我在StackOverflow上的第一个问题,我自己回答:就像老板:D
所以诀窍是让我的类公开,这样ListPicker控件就可以从WPToolkit访问它;)
干杯!
https://stackoverflow.com/questions/14708434
复制相似问题