C# 如何获取列表框';s所选项目绑定元素?
这就是我的问题: 我希望从列表框中的选定元素中找到名为“id”的绑定字符串。 这是我的.xaml: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
<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