C# 从字符串到布尔值的IValueConverter转换错误

C# 从字符串到布尔值的IValueConverter转换错误,c#,wpf,C#,Wpf,我已经使用MVVM模式编写了应用程序。我有一个名为enum的文件夹,其中显示启用或禁用状态。在我的模型中,我将status属性声明为boolean。视图有一个显示状态的组合框。单击按钮后,应将状态作为布尔数据类型保存到数据库中。为了使其工作,我认为应该实现IValueConverter类,在该类中它获取字符串输出并转换为布尔值 这是我的型号代码: private bool status; public bool ProductionLineStatus { ge

我已经使用MVVM模式编写了应用程序。我有一个名为enum的文件夹,其中显示启用或禁用状态。在我的模型中,我将status属性声明为boolean。视图有一个显示状态的组合框。单击按钮后,应将状态作为布尔数据类型保存到数据库中。为了使其工作,我认为应该实现IValueConverter类,在该类中它获取字符串输出并转换为布尔值

这是我的型号代码:

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}" />


如何实现将值从字符串输入转换为布尔输入的目标。当前它向我显示错误消息`不正确的整数值;真实状态

开关
语句中,如果
启用
0
转换回
方法中禁用则返回
1
,则不能为布尔类型分配整数值。相反,如果禁用了
则返回false
,如果启用了
则返回true
我找到了解决方案,这是我的错误。我必须更改viewmodel中的代码

查询应从整数转换为布尔值

代码如下:

query = "Insert into productionlineconfig (PRODUCTION_LINE_CODE, PRODUCTION_LINE_NAME, PRODUCTION_LINE_STATUS) Values ('" + ProductionLineConfigs.ProductionLineCode + "' , '" + ProductionLineConfigs.ProductionLineName + "' , '" + Convert.ToInt32(ProductionLineConfigs.ProductionLineStatus) + "')";