¿Hay alguna buena manera de vincular una propiedad a un valor constante en codebehind?Enlace const miembro en el código detrás de xaml en WPF
Cuando uso ComboBox, que suele hacer de esta manera en XAML y código detrás:
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;
}
La razón por la que elegí esta manera es siguiente:
- Para l propósito de localización, la cadena de contenido no debe usarse para determinar qué elemento se selecciona durante el guardado y la carga del último elemento seleccionado.
- Para simplificar, XAML y código subyacente deben estar conectados como identificador interno (en este caso, Uid). Entonces, XAML y Code-behind pueden mantenerse por separado.
Sin embargo, el mantenimiento a gota, el identificador interno debe definirse en un lugar como este:
//IDs
public const string ID_foo = "foo";
public const string ID_bar = "bar";
...
//
switch (item.Uid)
{
case ID_foo: ... break;
case ID_bar: ... break;
}
El problema es aparentemente propiedad no puede ser de valor constante, así que no hay forma de obligar ID_foo y ID_bar a UID del ComboBoxItem así:
//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>
Por lo tanto, quiero saber cómo resolver este problema. O, ¿hay alguna forma mejor de implementarlo? Sería bueno, también.
mejor,
¡Muchas gracias! Esto es exactamente lo que quería!Además, la información relacionada con fugas y gastos generales es realmente útil. – Aki24x