我有一个调用和加载我的组合框的方法.一旦打完电话,我就将"全部"添加到组合框中.不幸的是,当这个被添加到列表中时,"All"的索引为0会使一切变得混乱.selectedindex应该是表格中的"a".有没有办法将"All"设置为-1作为索引?什么可能是仍然将"a"作为0的索引而不是1的索引的最佳方法?
private void Load()
{
List<string> all = dataSource.GetAll();
if (all.Count > 1)
{
cbAll.Items.Clear();
cbAll.BeginUpdate();
cbAll.Items.Add("All");
foreach (var item in all)
{
cbAll.Items.Add(item);
}
cbAll.SelectedIndex = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
表ITEM结果
0 -- a
1 -- b
2 -- c
3 -- d
Run Code Online (Sandbox Code Playgroud)
不要依赖于选定的索引,将ItemsSource ObservableCollection<T>绑定到a并将SelectedItem绑定到type属性,T并使用bound属性来读取选择.
如果您需要显示值与所选值不同,请将它们包装在一个小类中:
public class Item
{
public int Code { get; set; }
public string Display { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后您的ItemsSource绑定到一个属性:
public ObservableCollection<Item> Items { get; set; }
public int Selection { get; set; }
Run Code Online (Sandbox Code Playgroud)
您的DisplayMemberPath将显示
您的SelectedValuePath将是Code
而你的CombobBox Xaml将如下所示:
<ComboBox
ItemsSource="{Binding Path=Items}"
DisplayMemberPath="Display"
SelectedValuePath="Code"
SelectedValue="{Binding Path=Selection}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2036 次 |
| 最近记录: |