wp7 中列表选择器的选定索引
本文关键字:索引 选择器 列表 wp7 | 更新日期: 2023-09-27 18:36:15
我的页面中有 silverlight listpicker 控件,它与 List<Countries>
let say
美国
英国
巴基斯坦
丹麦
我将此列表与我的列表选择器绑定国家我希望默认选择的值将是巴基斯坦
我可以这样设置选定的项目
listpickercountries.selectedindex = 2;
有什么办法我可以从代码隐藏中找到巴基斯坦的索引,并像这样设置此列表选择器的这个选定
内容listpickercountries.selectedindex.Contain("Pakistan");
或类似的东西???
您必须在列表中搜索所需的国家/地区,检查它是哪个索引,然后在选择器本身上设置所选索引。
索引将是相同的。
我假设你的国家类是,
public class Countries
{
public string name { get; set; }
}
然后你可以做,
listpickercountries.ItemsSource = countriesList;
listpickercountries.SelectedIndex = countriesList.IndexOf( countriesList.Where(country => country.name == "Pakistan").First());
我建议同时绑定ItemsSource和SelectedItem
<toolkit:ListPicker x:Name="listpickercountries"
ItemsSource="{Binding Countries}"
SelectedItem="{Binding SelectedCountry, Mode=TwoWay}">
在代码隐藏中,设置视图模型
public SettingsPage()
{
ViewModel = new ViewModel();
InitializeComponent();
}
private ViewModel ViewModel
{
get { return DataContext as ViewModel; }
set { DataContext = value; }
}
并在视图中模型
public class ViewModel : INotifyPropertyChanged
{
public IList<Country> Countries
{
get { return _countries; }
private set
{
_countries = value;
OnPropertyChanged("Countries");
}
}
public Country SelectedCountry
{
get { return _selectedCountry; }
private set
{
_selectedCountry= value;
OnPropertyChanged("SelectedCountry");
}
}
}
从那里,您可以随时设置所选国家/地区的值,它将在选择器中设置所选项目例如:
// from code behind
ViewModel.SelectedCountry = ViewModel.Countries.FirstOrDefault(c => c.Name == "Pakistan");
// From ViewModel
this.SelectedCountry = this.Countries.FirstOrDefault(c => c.Name == "Pakistan");