C# 如何获取列表框';s所选项目绑定元素?

C# 如何获取列表框';s所选项目绑定元素?,c#,xaml,listbox,windows-phone-8.1,C#,Xaml,Listbox,Windows Phone 8.1,这就是我的问题: 我希望从列表框中的选定元素中找到名为“id”的绑定字符串。 这是我的.xaml: <ListBox Name="lstView"> <ListBox.ItemTemplate> <DataTemplate> <Grid/> <TextBlock Text="{Binding i

这就是我的问题: 我希望从列表框中的选定元素中找到名为“id”的绑定字符串。 这是我的.xaml:

<ListBox Name="lstView">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid/>                                   
                <TextBlock Text="{Binding id}"/>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
我尝试过各种不同的场景,但都没有成功://

尝试下面的代码

    if(lstView.SelectedItems.Count=0)
    {
      return;
    }
    var selectedItem=lstView.SelectedItem[0] as FrameWorkElement;
    var itemDataContext=selectedItem.DataContext as Article;
    if(itemDataContext!=null)
    {
        //do what you like with the object
        string idString=itemDataContext.id;
    }

我假设您没有使用MVVM

您可以将以下依赖项属性及其包装添加到代码中:

    public Article SelectedArticle
    {
        get { return (Article)GetValue(SelectedArticleProperty); }
        set { SetValue(SelectedArticleProperty, value); }
    }

    // Using a DependencyProperty as the backing store for SelectedArticle.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty SelectedArticleProperty =
        DependencyProperty.Register("SelectedArticle", typeof(Article), typeof(MainWindow), new PropertyMetadata(null));
在您的列表框中,只需添加

SelectedItem="{Binding SelectedArticle}"
每次更改选择时,都会通知SelectedArticle,您可以轻松访问自己的属性


但是,尝试使用数据绑定到ObservableCollection,而不是使用foreach对您的集合进行迭代。

事实上,我找到了一种更简单的方法来实现这一点(无论如何,感谢您的帮助):

然后,要将任何字符串绑定到您调用的元素,请执行以下操作:

selectedArticle.nameofthebindedstring            
Article selectedArticle = lstView.SelectedItem as Article;
selectedArticle.nameofthebindedstring