C'è un modo valido per associare una proprietà a un valore const in codebehind?Binding membro const nel codice indietro da xaml in WPF
Quando uso ComboBox, faccio di solito in questo modo in XAML e codice dietro:
XAML:
<ComboBox Name="cbBuz">
<ComboBoxItem Content="foo" Uid="foo" IsSelected="true" />
<ComboBoxItem Content="bar" Uid="bar" />
</ComboBox>
Codebehind:
ComboBoxItem item = cbBuz.GetSelectedItem();
switch (item.Uid)
{
case "foo": ... break;
case "bar": ... break;
}
Il motivo per cui ho scelto questo modo è seguente:
- Per l scopo di ocalizzazione, la stringa di contenuto non deve essere utilizzata per determinare quale elemento è selezionato durante il salvataggio e il caricamento dell'ultimo elemento selezionato.
- Per semplicità, XAML e code-behind devono essere connessi identificatore interno (In questo caso, Uid). In questo modo, XAML e Code-behind possono essere gestiti separatamente.
Tuttavia, la manutenzione-saggio, l'identificativo interno dovrebbero essere definiti in un posto come questo:
//IDs
public const string ID_foo = "foo";
public const string ID_bar = "bar";
...
//
switch (item.Uid)
{
case ID_foo: ... break;
case ID_bar: ... break;
}
Il problema è apparentemente proprietà non può essere un valore const, quindi non c'è modo di legare ID_foo e ID_bar a UID ComboBoxItem come questo:
//If ID_foo and ID_bar are properties, this will work.
<ComboBox Name="cbBuz">
<ComboBoxItem Content="foo" Uid="{Binding ID_foo}" IsSelected="true" />
<ComboBoxItem Content="bar" Uid="{Binding ID_bar}" />
</ComboBox>
Quindi, voglio sapere come risolvere questo problema. Oppure, c'è un modo migliore per implementarlo. Sarebbe anche bello.
migliore,
Grazie mille! Questo è esattamente quello che volevo!Inoltre, le informazioni relative alla perdita e al sovraccarico sono davvero utili. – Aki24x