2014-09-11 6 views
0

응용 프로그램이 열리면 ListPicker의 selectedItem, 즉 "BackgroundColor"가 변수에 있어야합니다. 이것을 달성하는 방법?selecteditem 또는 listpicker에 대한 selectedindex

XAML :

<phone:PhoneApplicationPage.Resources> 
    <DataTemplate x:Name="PickerItemTemplate"> 
     <TextBlock Text="{Binding BackGroundColorString}" /> 
    </DataTemplate> 
    <DataTemplate x:Name="PickerFullModeItemTemplate" > 
     <Grid x:Name="rootGrid" Margin="0"> 
      <StackPanel Orientation="Horizontal" Margin="0 14 0 0" HorizontalAlignment="Center"> 
       <TextBlock Name="BackgroundColor" 
          Text="{Binding BackGroundColorString}" 
          FontSize="35" 
          Margin="10,10"        
          TextAlignment="Center" 
          FontFamily="/Assets/Fonts/AGENCYR.TTF#Agency FB" 
       /> 
      </StackPanel> 
     </Grid> 
    </DataTemplate> 
</phone:PhoneApplicationPage.Resources>   

<toolkit:ListPicker x:Name="BackgroundColor" FullModeHeader="Select Background Color:" 
        Header="Background Color:" BorderThickness="0" 
        FullModeItemTemplate="{StaticResource PickerFullModeItemTemplate}" 
        ItemTemplate="{StaticResource PickerItemTemplate}" Background="#FF09043C" 
        SelectionChanged="BackgroundColor_SelectionChanged" > 
</toolkit:ListPicker> 

C 번호 : BackgroundColor 항목은 클래스/목록에서 acutaly 있습니다, 때문에

public class BackGroundlistPickerClass 
{ 
    public string BackGroundColorString 
    { 
     get; 
     set; 
    } 
} 

List<BackGroundlistPickerClass> BackGroundColorList = new List<BackGroundlistPickerClass>(); 

public void ImplementListPickeritems() //Listpickers 
{ 
    BackGroundColorList.Add(new BackGroundlistPickerClass() { BackGroundColorString = "White (Default)" }); 
    BackGroundColorList.Add(new BackGroundlistPickerClass() { BackGroundColorString = "Black" }); 
    BackGroundColorList.Add(new BackGroundlistPickerClass() { BackGroundColorString = "Light Grey" }); 

} 

string PreSelectedColor="Black"; 
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    BackgroundColor.SelectedItem=PreSelectedColor; // ERROR COMES ON THIS LINE 
} 

BackgroundColor.SelectedItem가 작동하지 않습니다. 이제 페이지가 열릴 때마다 BackgroundColor listpicker를 Black (PreSelectedColor)로 설정하는 방법은 무엇입니까?

답변

2

SelectedItemItemsSource의 항목으로 설정해야합니다. 이 방법을 시도해 볼 수 있습니다. ItemsSource에 대해 ItemsSource에 대한 BackGroundColorList 속성 사용 :

string PreSelectedColor="Black"; 
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    var defaultColor = 
      BackGroundColorList.FirstOrDefault(o => o.BackGroundColorString == PreSelectedColor); 
    BackgroundColor.SelectedItem = defaultColor; 
}