Я хочу научиться программированию WPF. Я хочу знать, связывание пол персонала в ComboBox:WPF ComboboxItem binding
class Staff {
public int Gender {get; set;}
}
class ViewModel {
private Staff _staff
public Staff Staff {
get {return _staff;}
set {
_staff = value;
RaisePropertyChangedEvent("Staff");
}
}
}
<ComboBox SelectedItem="{Binding Staff.Gender, Converter={StaticResource GenderConverter}}">
<ComboBoxItem IsSelected="True" Content="{StaticResource strGenderMale}"/>
<ComboBoxItem Content="{StaticResource strGenderFemale}"/>
<ComboBoxItem Content="{StaticResource strGenderOther}"/>
</ComboBox>
GenderConverter является моим настроить конвертер для преобразования Int < -> строка (0: мужчина, 1: женщина, 2: другая)
public class IntegerToGenderConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
if (value is int) {
if ((int)value == MyConstants.GENDER_MALE) { //GENDER_MALE is 1
return MyConstants.GENDER_MALE_STR; //GENDER_MALE_STR is the string: "Male"
}
if ((int)value == MyConstants.GENDER_FEMALE) {
return MyConstants.GENDER_FEMALE_STR;
}
}
return MyConstants.GENDER_OTHER_STR;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
switch (value.ToString()) {
case MyConstants.GENDER_MALE_STR:
return MyConstants.GENDER_MALE;
case MyConstants.GENDER_FEMALE_STR:
return MyConstants.GENDER_FEMALE;
default:
return MyConstants.GENDER_OTHER;
}
}
}
Когда я запустить приложение, персонал не равно нулю (все остальное (например, имя, дата рождения ...) связан хорошо, за исключением Пол :(
Edit:
Когда я создал список Genders и привязал его к свойству ComboBox ItemsSource вместо использования тегов, он работал хорошо. Зачем???
Когда я создал список Genders и привязал его к свойству ComboBox ItemsSource вместо тегов , он работал хорошо. Почему ??? –
Fanliver
вы можете вставить свой полный код – Rohit