好吧,这是我在 StackOverflow 上的第一个问题!我从很久以前就一直在使用这个网站,但我从来不用问什么,因为我总是在别人的问题中找到答案,哈哈显然现在情况不再如此了,哈哈。
无论如何,我正在尝试将自定义类的列表(被装饰为与DataContext
管理本地 SQL Server CE 3.5 数据库 - 本机包含在 Windows Phone 7.5 中)一起使用的自定义类列表绑定到ListPicker
来自 WPToolkit 的控件,奇怪的是我可以'看不到我绑定的元素的值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>
rubs列表Rubrique
被填充并设置为ItemsSource
,RubListPicker
如果我删除Text="{Binding Nom}"
中的TextBlock
,DataTemplate
我可以MyNamespace.Rubrique
在 中的每个元素中看到类的名称ListPicker
。
我不知道数据绑定有什么问题......任何帮助将不胜感激:)
我在带有 Windows Phone 8 SDK 的 Visual Studio 2012 Ultimate 中使用来自 NuGet 的最新版本的 WPToolkit 4.2012.10.30。
感谢您抽时间阅读!
问候,
阿里
编辑
我找到了解决方案,它让我大笑起来,哈哈。
我不得不改变我班级Rubrique的安全级别;当我将其设置为公开时,一切正常。
实际上, theListPicker
可以访问,List<Rubrique>
但无法访问 each 的值Rubrique
。
将来要记住的一个好消息:使用外部库时,请始终检查类/属性/方法的安全级别。