我在我的应用程序中列出了框。 以下是截图。
当用户点击列表项时,我正在显示详细页面。 它是在下面的选择改变听众处理。
private void companiesList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//get the selected item from list
Company selectedItem = (Company)e.AddedItems[0];
Uri uri = new Uri("/CompanyDetailsPage.xaml", UriKind.Relative);
//navigate to target page
this.NavigationService.Navigate(uri);
FrameworkElement root = Application.Current.RootVisual as FrameworkElement;
root.DataContext = selectedItem;
}
}
到目前为止,这很好。
现在,当用户点击项目上的“删除”按钮时, 然后我要从列表中删除该项目。
private void Del_Btn_clicked(object sender, RoutedEventArgs e)
{
//get the Corresponding item from list i.e. On which delete button is placed.
//Delete saved company from the database
}
我无法获得放置删除按钮的特定列表项索引。 我可以得到。
感谢。
答案 0 :(得分:2)
您可以通过强制转换sender
参数来检索按钮。从那里,您可以通过转换DataContext属性来检索公司:
private void Del_Btn_clicked(object sender, RoutedEventArgs e)
{
var button = (Button)sender;
var company = (Company)button.DataContext;
// ...
}
答案 1 :(得分:0)
获取列表框的索引,您可以直接设置属性
SelectedIndex = {Binding asd,Mode = TwoWay}
然后在viewmodel中
制作一个属性
private int _asd;
public int asd
{
get
{
return _asd;
}
set
{
_asd= value;
}
}
通过这个你将获得所选项目的索引... 希望它可以帮助..