У меня есть приложение, написанное с использованием шаблона MVVM. У меня есть папка enum, в которой она отображает статус «Включить» или «Отключить». В моей модели я объявил свойство status как логическое. Представление имеет выпадающий список, который отображает статус. Как только кнопка нажата, она должна сохранить статус в базе данных как логический тип данных. Чтобы заставить его работать, я считаю, что мне следует реализовать класс IValueConverter, где он принимает выходные данные String и конвертирует их в логические значения.
Это код моей модели:
private bool status;
public bool ProductionLineStatus
{
get { return status; }
set
{
status = value;
OnPropertyChanged("ProductionLineStatus");
}
}
Это конвертер:
public class StatusToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool)
{
if ((bool)value == 1)
{
return "Enable";
}
else
{
return "Disable";
}
}
return "Disable";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
switch (value.ToString())
{
case "Enable":
return 1;
case "Disable":
return 0;
}
return 0;
}
}
Это xaml:
<Window.Resources>
<cv:StatusToBooleanConverter x:Key="statusToBooleanConverter"/>
<ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="enum:Status"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<ComboBox x:Name="combobox_status" Grid.Column="2" Grid.Row="3" Margin="5.8,41.8,43.8,0" VerticalAlignment="Top" SelectionChanged="combobox_status_SelectionChanged"
ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding ProductionLineConfigs.ProductionLineStatus, Converter={StaticResource statusToBooleanConverter}, Mode=TwoWay}" />
Как мне достичь своей цели, когда я смогу преобразовать значение из строкового ввода в логический. В настоящее время отображается сообщение об ошибке `Неправильное целочисленное значение; True STATUS