/ / WPF data binding al dizionario con enum key - c #, wpf, xaml, dizionario, enumerazioni

Associazione dati WPF al dizionario con chiave enum - c #, wpf, xaml, dizionario, enumerazioni

Ho una soluzione con un paio di progetti. In un progetto, il mio modello ha un enum chiamato ModelEnum.

Quindi nel mio progetto WPF ho un ViewModel che ha un dizionario.

E nel mio ViewModel ho il mio setup ValuesDictionary come:

    private Dictionary<ModelEnum, string> _valuesDictionary = new Dictionary<ModelEnum, string>();

public Dictionary<ModelEnum, string> ValuesDictionary
{
get { return _valuesDictionary; }
set { _valuesDictionary = value; OnPropertyChanged(_valuesDictionary); }
}

Nel mio XAML ho:

xmlns:model="clr-namespace:Model.Data;assembly=Model"
...
<TextBox Text="{Binding Path=ValuesDictionary[(model:ModelEnum)ModelEnum.Enum1].Value}" HorizontalAlignment="Left" Height="29" Margin="90,82,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="50"/>

Il seguente snippet XAML:

(model:ModelEnum)ModelEnum.Enum1

mi sta dando l'errore "Parameter type mismatch." Sono confuso perché pensavo di trasmettere questo al tipo Enum che mi aspettavo Questo QUINTA domanda per provarlo senza fortuna.

risposte:

4 per risposta № 1

sostituire

(model:ModelEnum)ModelEnum.Enum1].Value

con

(model:ModelEnum)Enum1]

Quindi prova. Spero che funzionerà.


1 per risposta № 2

Solo per aggiungere alle potenziali insidie ​​con questo, ho avuto problemi di associazione senza l'esplicito "Path ="

cioè

{Binding ValuesDictionary[(model:ModelEnum)Enum1]}

non funziona, ma:

{Binding Path=ValuesDictionary[(model:ModelEnum)Enum1]}

funziona come previsto, anche se il progettista (o forse ReSharper) si lamenta ancora degli errori di sintassi.