为什么默认选择的索引不起作用?它崩溃了平台异常:
<ComboBox x:Name="dCmbControl" x:Uid="dCmbControl" SelectionChanged="ComboBox_SelectionChanged" SelectedIndex="0" ItemsSource="{x:Bind abc}"/>
RumTime错误:
Exception thrown at 0x00007FFDEF7F7788 (KernelBase.dll) in abc.exe: 0x40080201: WinRT originate error (parameters: 0x00000000802B000A, 0x000000000000003E, 0x00000066746FBB90).
Exception thrown at 0x00007FFDEF7F7788 in abc.exe: Microsoft C++ exception: Platform::COMException ^ at memory location 0x00000066746FC0E0. HRESULT:0x802B000A The text associated with this error code could not be found.
我做错了什么?
答案 0 :(得分:2)
SelectedIndex
设置为0时,ComboBox
正在尝试访问其第一个子项以选择它。加载XAML时,将构建控件并将SelectedIndex
初始化为0.这将更新相关的SelectedItem
属性,但由于此时仍然没有可用的项,因此会引发异常。
不幸的是,引发的异常不包含任何有关此内容的详细信息(在C#中也是如此)。
您可以在XAML中将值设置为-1
,并在加载组合框后将其更新为您想要的(通过后面的代码或通过绑定)。
答案 1 :(得分:0)
我有类似的问题。 我所做的是在我需要设置之前手动将列表中的项目(与我在x:bind中使用的列表相同)添加到组合框中。这样,它总是在您需要时加载。