CommunityToolkit / CommunityToolkit/Windows
Binding TokenizingTextBox ItemSource to a nested model throws InvalidCastException
- Lenguaje dominante
- C#
- Estrellas
- 1.1k
- Forks
- 166
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### Describe the bug
Binding the TokenizingTextBox ItemSource to an ObservableCollection inside a nested object eg. {x:Bind ViewModel.MyObject.Tags, Mode=TwoWay} results in InvalidCastException: Unable to cast object of type 'CommunityToolKit.WinUi.Controls.InterspersedObservableCollection' to type 'System.Collections.ObjectModel.ObservalbeCollection[System.String]'
### Steps to reproduce
```text
page.xaml
...
...
page.xaml.cs
...
public MyViewModel ViewModel {get;}
...
MyViewModel.cs
...
public MyObject Object {get; set;} = new();
...
MyObject.cs
...
public ObservableCollection Tags {get; set;} = new();
...
```
### Expected behavior
No exception should be thrown
### Screenshots
_No response_
### 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)
- [ ] 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)
- [x] Windows 11 21H2 (Build 22000)
- [ ] Other (specify)
### Other Windows Build number
_No response_
### App minimum and target SDK version
- [x] Windows 10, version 1809 (Build 17763)
- [ ] Windows 10, version 1903 (Build 18362)
- [ ] Windows 10, version 1909 (Build 18363)
- [ ] Windows 10, version 2004 (Build 19041)
- [ ] Windows 10, version 2104 (Build 20348)
- [ ] Windows 11, version 22H2 (Build 22000)
- [x] Other (specify)
### Other SDK version
22621
### Visual Studio Version
_No response_
### Visual Studio Build Number
_No response_
### Device form factor
_No response_
### Additional context
_No response_
### Help us help you
No, I'm unable to contribute a solution.
Guía de contribución
Línea de trabajo
Empieza reproduciendo el binding en page.xaml usando el ejemplo anidado de ViewModel.Object.Tags de page.xaml.cs, MyViewModel.cs y MyObject.cs. Traza el binding de ItemSource de TokenizingTextBox para identificar por qué la ObservableCollection anidada se convierte a InterspersedObservableCollection. Se considera terminado cuando el mismo binding deja de lanzar InvalidCastException.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp
- Área
- frontend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100