使用 enumValueExtension 对 combobox 进行数据绑定时,ui显示异常
Describe the bug
combobox的显示项异常,尝试设置 DisplayMemberPath = Key|Name|Label,都无效
Steps to reproduce
<ComboBox x:Name="themeMode"
xmlns:ui="using:CommunityToolkit.WinUI"
xmlns:enums="using:Microsoft.UI.Xaml"
ItemsSource="{ui:EnumValues Type=enums:ElementTheme}"
SelectedItem="{x:Bind ViewModel.ElementTheme, Mode=OneWay}"
DisplayMemberPath="Name"
>
</ComboBox>
Expected behavior
在ui层,能正常显示
Screenshots
Code Platform
- [ ] UWP
- [X] WinAppSDK / WinUI 3
- [ ] Web Assembly (WASM)
- [ ] Android
- [ ] iOS
- [ ] MacOS
- [ ] Linux / GTK
Windows Build Number
- [ ] Windows 10 1809 (Build 17763)
- [ ] Windows 10 1903 (Build 18362)
- [ ] Windows 10 1909 (Build 18363)
- [X] Windows 10 2004 (Build 19041)
- [ ] Windows 10 20H2 (Build 19042)
- [ ] Windows 10 21H1 (Build 19043)
- [ ] Windows 10 21H2 (Build 19044)
- [ ] Windows 10 22H2 (Build 19045)
- [ ] Windows 11 21H2 (Build 22000)
- [ ] Other (specify)
Other Windows Build number
No response
App minimum and target SDK version
- [ ] Windows 10, version 1809 (Build 17763)
- [ ] Windows 10, version 1903 (Build 18362)
- [ ] Windows 10, version 1909 (Build 18363)
- [X] Windows 10, version 2004 (Build 19041)
- [ ] Windows 10, version 2104 (Build 20348)
- [ ] Windows 11, version 22H2 (Build 22000)
- [ ] Other (specify)
Other SDK version
No response
Visual Studio Version
2022
Visual Studio Build Number
No response
Device form factor
Desktop
Additional context
No response
Help us help you
Yes, I'd like to be assigned to work on this item.
这里应该不需要设置DisplayMemberPath
ViewModel.ElementTheme是什么类型的?应该和ItemsSource绑定的数组的元素类型一致
@dodu2014 I just ran into this same issue on Windows 11.
See this explanation: https://stackoverflow.com/a/39379568/390982
Simply put, the ElementTheme enumeration is not a .net type, and does not act like a .net enum. You (and I) will need to define a custom enum, or devise another way to mock the enumeration.
This ticket is a duplicate of https://github.com/CommunityToolkit/Windows/issues/263