He creado una clase Persona que tiene este aspecto:¿Cómo pasar un valor específico al parámetro del convertidor?
public class Person
{
public enum GenderType
{
Female,
Male
}
public string Name
{
get; set;
}
public GenderType? Gender
{
get; set;
}
}
A continuación, he creado la plantilla de datos que se va a presentar objetos de tipo Person.
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, los ???
s en el código no funcionará :) El problema es que quiero crear un convertidor genderConverter
que comparará el valor dado, es decir personObject.Gender
, en contra de la dado el valor Person.GenderType
proporcionado en el parámetro y devolver true
si los valores coinciden.
No sé cómo hacer que el parámetro del convertidor pase Person.GenderType.Female
, Person.GenderType.Male
y null
, para el primer, segundo y tercer botón de opción, respectivamente.