CommunityToolkit / CommunityToolkit/Windows

Binding TokenizingTextBox ItemSource to a nested model throws InvalidCastException

Abierto
#607 1 comentario 0 reacciones 0 asignados Ver en GitHub
bug components::controls::tokenizingtextbox
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.