3
데이터베이스에 정의 된 비트가 0 = 아니요, 1 = 예입니다. 나는 "Yes"와 "No"값을 가진 실버 콤보를 가지고 있습니다. 어떻게 비트 값을 콤보에 바인딩 할 수 있습니까?Silverlight 콤보 박스에서 예 (Yes)와 아니오 (No)를 표시하고 데이터베이스에 바인드하는 쉬운 솔루션이 있습니까?
데이터베이스에 정의 된 비트가 0 = 아니요, 1 = 예입니다. 나는 "Yes"와 "No"값을 가진 실버 콤보를 가지고 있습니다. 어떻게 비트 값을 콤보에 바인딩 할 수 있습니까?Silverlight 콤보 박스에서 예 (Yes)와 아니오 (No)를 표시하고 데이터베이스에 바인드하는 쉬운 솔루션이 있습니까?
사용중인 데이터 액세스 프로세스를 나타내지는 않지만 일반 도구는 비트 필드를 부울 속성으로 표시합니다. 가장 쉬운 방법은 값 변환기를 사용하는 것입니다. 응용 프로그램에서 그와
public class BoolToStringConverter : IValueConverter
{
public String FalseString { get; set; }
public String TrueString { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return FalseString;
else
return (bool)value ? TrueString : FalseString;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.Equals(TrueString);
}
}
당신이 지금 Resources
특성 (일반적으로 App.xaml)
<Resources>
<local:BoolToStringConverter x:Key="CvtYesNo" FalseString="No" TrueString="Yes" />
</Resources>
지금 당신은이처럼 콤보를 만들 것입니다 : -
<ComboBox SelectedItem="{Binding YourBitField, Converter={StaticResource CvtYesNo}, Mode=TwoWay}">
<sys:String>Yes<sys:String>
<sys:String>No<sys:String>
</ComboBox>
내가 Linq에와 실버 라이트 3를 사용하고 있습니다 2Sql. 의견을 보내 주셔서 감사합니다. 그걸 파헤 치자. – ScottG
위의 코드가 작동하려면 네임 스페이스 ... xmlns : sys = "clr-namespace : System; assembly = mscorlib"가 포함됩니다. 또한 위의 코드를 복사하는 경우 마지막 ComboBox 태그의 철자가 잘못되었습니다. – DeveloperDan
@DeveloperDan : local : 별칭은 어떻게됩니까? – AnthonyWJones