如何获取所选列表框项的属性值

时间:2012-07-03 11:27:04

标签: c# windows-phone-7 xaml windows-phone-7.1

我要做的是,在列表框中获取所选项的属性值。

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
    //listBox1.Items.Clear();

    IList<FoodViewModel> food = this.Getfoodlist();    
    List<Foodlist> foodItems = new List<Foodlist>();

    foreach (FoodViewModel foodlist in food)
    {
        int foodID = foodlist.C_ID;
        string foodDetail = foodlist.FoodDetail;
        string foodTime = foodlist.FoodTime;
        string foodDate = foodlist.DateofFood;

        foodItems.Add(new Foodlist() { C_ID = foodID, FoodTime = foodTime, DateofFood = foodDate, FoodDetail = foodDetail}); 
    }

    listBox1.ItemsSource = foodItems;
}

public class Foodlist
{
    public int C_ID { get; set; }
    public string DateofFood{ get; set;}    
    public string FoodTime{ get; set;}    
    public string FoodDetail{ get; set;}
}

XAML代码 -

<ListBox Height="528" HorizontalAlignment="Left" Margin="1,4,0,0" Name="listBox1" VerticalAlignment="Top" Width="453">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Name="foodDetail"
                           Text="{Binding FoodDetail}" />
                <TextBlock Name="date"
                           Text="{Binding DateofFood}" />
                <TextBlock Name="time"
                           Text="{Binding FoodTime}" />
                <TextBlock Name="ID"
                           Text="{Binding C_ID}" Visibility="Collapsed" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

现在,我想要的是所选列表框项的C_ID(值)。有什么建议?

2 个答案:

答案 0 :(得分:2)

这将是这样的:

private void listBox1_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
    if (e.AddedItems.Count > 0)
    {
        var c_id = (e.AddedItems[0] as Foodlist).C_ID;
    }
}

Page_Ctor --> listBox1.SelectionChanged += listBox1_SelectionChanged;

欢呼声,

答案 1 :(得分:0)

  

我在哪里放置“Page_Ctor - &gt; listBox1.SelectionChanged + = listBox1_SelectionChanged;”

这里:

<ListBox .... SelectionChanged="listBox1_SelectionChanged">