我使用template10创建了一个新项目,我正在使用一个简单的表单:我从一个comboxbox中的远程服务器加载一个项目列表,并在列表加载后选择其中一个项目。
我尝试设置 SelectedValue , SelectedItem ot SelectedIndex ,但是当显示表单时,列表框显示为未选中。
我错过了什么吗?
这是xaml
<ComboBox x:Name="voceSpesaCb" Margin="16,16,0,0"
RelativePanel.AlignLeftWith="parameterResizer"
RelativePanel.Below="voceSpesaTextBlock"
DisplayMemberPath="Descrizione"
SelectedValue="{x:Bind ViewModel.VoceCorrente, Converter={StaticResource XConverter}, Mode=TwoWay}"
ItemsSource="{x:Bind ViewModel.Voci, Converter={StaticResource XConverter}}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
这是代码
Voci = await vociSpesaTable.OrderBy(vs => vs.Descrizione).ToListAsync();
VoceCorrente = Voci.FirstOrDefault(vs => vs.VoceSpesaNo == Item.VoceSpesaNo);
在属性的setter中有对RaisePropertyChanged的调用
答案 0 :(得分:1)
看起来很喜欢我发现了问题。由于我完全不理解的原因,我也必须为ItemsSource属性设置Mode = TwoWay。
<ComboBox x:Name="voceSpesaCb" Margin="16,16,0,0"
RelativePanel.AlignLeftWith="parameterResizer"
RelativePanel.Below="voceSpesaTextBlock"
DisplayMemberPath="Descrizione"
SelectedValue="{x:Bind ViewModel.VoceCorrente, Converter={StaticResource XConverter}, Mode=TwoWay}"
ItemsSource="{x:Bind ViewModel.Voci, Converter={StaticResource XConverter}, Mode=TwoWay}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
/>
这种方式有效