WPF - 绑定到的ItemsSource和SelectedIndex的抛出异常?
-
12-09-2019 - |
题
此代码给我一个“参数超出范围”的异常。当我删除绑定到SelectedIndex
,该ComboBox
填充得很好,不会引发任何异常。
任何想法,我做错了什么?这是(出于某种原因)不可能?
代码:
public class RuleMap<T> : INotifyPropertyChanged
{
public ObservableCollection<string> Options
{
get
{
return new ObservableCollection(){"A", "B", "C"};
}
}
public int SelectedIndex
{
get
{
return 0;
}
}
}
public ObservableCollection<RuleMap> FilterItemSource;
XAML:
<ItemsControl ItemsSource="{Binding FilterItemSource}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal"> <ComboBox Width="150" SelectedIndex="{Binding SelectedIndex}"
ItemsSource="{Binding Options}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
解决方案 3
原来组合框对照根本破裂开始。由于这个博客文章,我们能够覆盖ComboBox控件与一个可以正确地绑定到SelectedItem属性。
伊克。
其他提示
我想这SelectedIndex
它是一个只读属性。点击
其他问题可以是0它不是在收集
我认为项目不被的selectedIndex之前添加被绑定,并且由于不存在项目,它显示出范围异常的参数。
我会避免从你的选项属性返回新集合。您制作的WPF只访问一次财产的假设。
但是,你也可以选择使用的CollectionView,你目前正在返回一个ObservableCollection的选项。如果您使用的是MVVM架构,您的视图模型可以公开的财产的CollectionView和它有一个“电流”项目的概念。
不隶属于 StackOverflow