turbina transmision sintomas precio google falla etiquetas ejemplos convertidor automatica .net wpf xaml binding converter

.net - transmision - ¿Cómo pasar un valor específico al parámetro del convertidor?



meta tags seo (2)

Creé una Persona de clase que se ve así:

public class Person { public enum GenderType { Female, Male } public string Name { get; set; } public GenderType? Gender { get; set; } }

Luego, creé una plantilla de datos que presentará objetos de tipo Persona.
Aquí está el código XAML:

<DataTemplate x:Key="personTemplate" DataType="{x:Type model:Person}"> <StackPanel> <RadioButton Content="Female" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=???}"/> <RadioButton Content="Male" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=???}"/> <RadioButton Content="Not specified" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=???}"/> </StackPanel> </DataTemplate>

Por supuesto, el ??? s en el código no funcionará :) El problema es que quiero crear un convertidor genderConverter que compare el valor dado, es decir, personObject.Gender , con el valor proporcionado Person.GenderType proporcionado en el parámetro y devolver true si los valores partido.

No sé cómo hacer que el parámetro convertidor pase Person.GenderType.Female , Person.GenderType.Male y null , para el primer, segundo y tercer botón de Person.GenderType.Male , respectivamente.


Como está creando su propio convertidor, ¿por qué no simplemente envía un bool nullable como parámetro del convertidor?

entonces para male,female,not specified envíe true,false,null .

Si no quieres hacer eso, tendrás que hacer referencia a tu espacio de nombres al principio así:

xmlns:myNamespace="clr-namespace:MyNamespace"

y entonces

<RadioButton Content="Male" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=x:Static myNamespace:Person.GenderType.Male}"/>

para sus botones de radio.


Intente usar x:Static extensión de marcado x:Static :

<RadioButton Content="Female" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter={x:Static model:GenderType.Female}}"/>

O bien, podría pasar una cadena y usar Enum.Parse para convertir esa cadena al tipo de enumeración en el convertidor:

<RadioButton Content="Female" IsChecked="{Binding Path=Gender, Converter={StaticResource genderConverter}, ConverterParameter=Female}"/>

-

GenderType gender = (GenderType)Enum.Parse(typeof(GenderType), parameter.ToString());