2014-04-08 2 views
0

현재 앱의 설정 페이지를 ListPicker으로 업데이트하려고합니다.ListPicker 비상 사태 - 재방송 방문의 기본값을 저장하려면 어떻게해야합니까?

저는이 책을 읽었으며 내 IsolatedStorage와 연결되어 있습니다. 그러나 옵션을 선택하면 현재 코드에서 페이지를 뒤로두고 SelectedIndex 설정이 저장되었지만 SelectedItem은 저장되지 않습니다. SelectedIndex에서와 같이 SelectedItem에 대해 동일한 코드를 사용하면 오류가 발생합니다.

<toolkit:ListPicker x:Name="defaultPicker" 
      SelectedIndex="{Binding Source={StaticResource appSettings}, Path=LanguageSetting, Mode=TwoWay}" 
      Grid.Column="2" Grid.Row="5"> 
       <toolkit:ListPickerItem Content="Cesky"/> 
       <toolkit:ListPickerItem Content="English"/> 
       <toolkit:ListPickerItem Content="Deutsch"/> 
    </toolkit:ListPicker> 

어떻게 떠난 후 설정 페이지로 사용자를 반환, 그들은 선택된 이전 옵션은 초기 값으로 표시됩니다 그럼 저장 ListPicker에서 선택한 옵션을 표시 할 수 있습니까?

미리 감사드립니다.

편집 : 내 코드가 수정되었으므로 ListPickerItem이 이제 데이터 바인딩됩니다. 그러나 나는 여전히 같은 문제가 있습니다.

XAML

<DataTemplate x:Name="ListPickerItemTemplate"> 
<StackPanel Orientation="Horizontal"> 
<TextBlock Text="{Binding FromClassTaxCode}" Margin="10 0 0 0"/> 
</StackPanel> 
</DataTemplate> 
<DataTemplate x:Name="ListPickerFullModeItemTemplate"> 
<StackPanel Orientation="Horizontal"> 
<TextBlock Text="{Binding FromClassTaxCode}" Margin="10 0 0 0"/> 
</StackPanel> 
</DataTemplate> 

.... 

<StackPanel Grid.Column="1" Grid.Row="5"> 
<toolkit:ListPicker x:Name="listPicker" 
ItemsSource="{Binding FromClassTaxCode}" 
ItemTemplate="{StaticResource ListPickerItemTemplate}" 
SelectedIndex="{Binding Source={StaticResource appSettings}, Path=TaxCodeLetterSetting, Mode=TwoWay}" 
FullModeItemTemplate="{StaticResource ListPickerFullModeItemTemplate}" 
FullModeHeader="Select A Tax Code Letter..." 
</StackPanel> 

C#

public SettingsWithoutConfirmation() 
{ 
    InitializeComponent(); 

    List<TaxCodes> source = new List<TaxCodes>(); 
    source.Add(new TaxCodes() { FromClassTaxCode = "Madrid" }); 
    source.Add(new TaxCodes() { FromClassTaxCode = "Las Vegas" }); 
    source.Add(new TaxCodes() { FromClassTaxCode = "London" }); 
    source.Add(new TaxCodes() { FromClassTaxCode = "Mexico" }); 
    source.Add(new TaxCodes() { FromClassTaxCode = "FSDF" }); 
    source.Add(new TaxCodes() { FromClassTaxCode = "FDSFDS" }); 
    source.Add(new TaxCodes() { FromClassTaxCode = "LKJSGFD" }); 
    this.listPicker.ItemsSource = source; 
} 

TaxCodes.cs *이

namespace MyNameSpace 
{ 
    public class TaxCodes 
    { 
     public string FromClassTaxCode 
     { 
      get; 
      set; 
     } 

    } 
} 

답변

0

저도 같은 문제가 있었다. 선택한 인덱스를 설정하기 전에 항목을 정의해야합니다. 따라서 항목에 데이터 바인딩을 사용해야하며 SelectedIndex 앞에 배치해야합니다.

+0

정확히 무슨 뜻인지에 대한 코드 샘플을 제공 할 수 있습니까? – Lucius86

+0

@ Lucius86 ** 툴킷 : ListPicker x : Name = "defaultPicker" ** 아이템 소스 = "{바인딩 xyz}"** SelectedIndex = "{바인딩 소스 = {StaticResource appSettings}, Path = LanguageSetting, Mode = TwoWay}" Grid.Column = "2"Grid.Row = "5"> – 3dz9j56

+0

아아아, 아직도 이것은 비 스타터로 보인다. 나는 바보 같은 일을해야 할 것이다. 설명을 돕기 위해 코드를 업데이트 한 것을 보여주기 위해 원래 질문을 편집했습니다. 데이터 바인딩을 만들었고,'ItemsSource'를 포함하고 데이터 바인딩을위한 별도의 클래스를 만들었지 만 여전히 같은 문제가 있습니다. 지금까지 시간 내 주셔서 감사합니다! – Lucius86