これは、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>
Rubrique
rubsのリストにデータが入力され、 に設定されます。 のを削除する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 のセキュリティ レベルを変更する必要がありました。public に設定すると、すべて正常に機能しました。
実際、 はListPicker
にアクセスできましたList<Rubrique>
が、 each の値にアクセスできませんでしたRubrique
。
将来のために覚えておくとよいこと: 外部ライブラリを使用するときは、クラス/属性/メソッドのセキュリティ レベルを常に確認してください。