フィードバックに基づいてより多くの情報を含めるように質問を編集しました。
私のSettingsPage.xamlには
<toolkit:ListPicker x:Name="lpkCountry"
ItemTemplate="{Binding Source={StaticResource lpkItemTemplate}}"
FullModeItemTemplate="{Binding Source={StaticResource lpkFullItemTemplate}}"
Header="your country" CacheMode="BitmapCache"
HorizontalAlignment="Left" VerticalAlignment="Top" Width="280" Height="82" />
App.xaml ページに配置された次の XAML に ListPicker DataTemplate をバインドしようとしています。
<Application.Resources>
<DataTemplate x:Name="lpkItemTemplate">
<TextBlock Text="{Binding Country}" />
</DataTemplate>
<DataTemplate x:Name="lpkFullItemTemplate">
<TextBlock Margin="16 0 0 0" Text="{Binding Country}" />
</DataTemplate>
</Application.Resources>
SettingsPage.xaml.cs は、パブリック静的文字列配列として Country を定義しました。
namespace myspace
{
public partial class SettingsPage : PhoneApplicationPage
{
public static String[] Country = {
"Afghanistan",
"Åland Islands",
"Albania",
"Algeria",
"American Samoa",
"Andorra",
"Angola"}
......;
また、SettingsPage.xaml.cs で、datacontext を別のオブジェクトに定義しました。
public SettingsPage()
{
InitializeComponent();
this.lpkCountry.SelectionChanged += new SelectionChangedEventHandler(lpkCountry_SelectionChanged);
this.lpkCountry.ItemsSource = Country;
settings = new AppSettings();
this.DataContext = settings;
}
しかし、実行時に SettingsPage に移動すると、この種の多くのエラーが発生します
System.Windows.Data エラー: BindingExpression パス エラー: 'Country' プロパティが 'アフガニスタン' 'System.String' に見つかりません (HashCode=-2039466552)。BindingExpression: Path='Country' DataItem='アフガニスタン' (HashCode=-2039466552); ターゲット要素は 'System.Windows.Controls.TextBlock' (Name='') です。ターゲット プロパティは 'Text' (タイプ 'System.String') です。
ターゲット要素とターゲット プロパティの間に競合があることは理解していますが、これを修正するにはどうすればよいですか?