2012-04-23 48 views
0

我對ListBox對象的XAML代碼:得到ListBoxItem中的項目

<ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="FirstListBox_SelectionChanged"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <StackPanel> 
           <Grid> 
            <TextBlock Text="{Binding LineOne}" TextWrapping="NoWrap" Margin="50,0,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
            <TextBlock Text="{Binding LineTwo}" TextWrapping="NoWrap" Margin="12,60,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
            <CheckBox VerticalAlignment="Top" Margin="0,-5,0,0"/> 
           </Grid>         
          </StackPanel>        
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 

我是通過代碼讓我一個ListBoxItem:

ListBoxItem item = this.list.ItemContainerGenerator.ContainerFromIndex(2) as ListBoxItem; 

,但我不知道如何讓所有項目在此列表框項目中(包括文本塊和複選框選項)。

請幫幫我。謝謝大家。

+1

http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.aspx可能會幫助你 – 2012-04-23 12:07:53

回答

1

理想情況下,你會希望你的複選框綁定到你的項目的數據模型的屬性,因此,例如,你可能有...

public string LineOne { get; set; } 
public string LineTwo { get; set; } 
public bool MyBooleanValue { get; set; } 

然後

<ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="FirstListBox_SelectionChanged"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <Grid> 
        <TextBlock Text="{Binding LineOne}" TextWrapping="NoWrap" Margin="50,0,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
        <TextBlock Text="{Binding LineTwo}" TextWrapping="NoWrap" Margin="12,60,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
        <CheckBox Checked="{Binding MyBoolValue, Mode=TwoWay}" VerticalAlignment="Top" Margin="0,-5,0,0"/> 
       </Grid>         
      </StackPanel>        
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

然後,您可以撤回當前正在查看的項目的DataContext(通過輕擊方法或類似方法),或者當您通過「Items」集合解析時,所有複選框狀態將已在您的子對象中。

+0

你能更清楚地表明這一點嗎?我在C#中不擅長。謝謝:) – user1259366 2012-04-23 13:38:04

+0

你需要更清楚些什麼? – ZombieSheep 2012-04-23 13:46:35

+0

哦。我懂了。謝謝你的幫助。 :d – user1259366 2012-04-23 13:55:30

相關問題