반응형
WPF 바인딩에서 값을 null로 설정합니다.
다음 줄을 봐주세요.
<TextBox Text="{Binding Price}"/>
위의 이 가격 속성은 다음과 같습니다.Decimal?
(10진수는 무효).
사용자가 텍스트 상자의 내용을 삭제하면(즉, 빈 문자열을 입력하면) 데이터 소스(바인딩 대상)를 null(VB에는 없음)로 자동 업데이트해야 합니다.
XAML에서 어떻게 할 수 있는지에 대한 아이디어가 있습니까?
사용하고 있습니다.NET 3.5 SP1은 매우 간단합니다.
<TextBox Text="{Binding Price, TargetNullValue=''}"/>
이는 다음을 나타냅니다(Gregor의 의견에 감사드립니다).
<TextBox Text="{Binding Price, TargetNullValue={x:Static sys:String.Empty}}"/>
sys
에 대해 가져온 xml 네임스페이스입니다.System
에mscorlib
:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
도움이 되었기를 바랍니다.
이 값 변환기는 다음과 같은 기능을 수행해야 합니다.
public class StringToNullableDecimalConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
decimal? d = (decimal?)value;
if (d.HasValue)
return d.Value.ToString(culture);
else
return String.Empty;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
string s = (string)value;
if (String.IsNullOrEmpty(s))
return null;
else
return (decimal?)decimal.Parse(s, culture);
}
}
리소스에서 이 변환기의 인스턴스 선언:
<Window.Resources>
<local:StringToNullableDecimalConverter x:Key="nullDecimalConv"/>
</Window.Resources>
그리고 그것을 당신의 바인딩에 사용합니다.
<TextBox Text="{Binding Price, Converter={StaticResource nullDecimalConv}}"/>
참고:TargetNullValue
여기서는 적합하지 않습니다. 이 값은 다음과 같은 경우에 사용되어야 하는 값을 정의하는 데 사용됩니다.source
바인딩이 null입니다.여기서Price
출처가 아니라 출처의 속성입니다.
ValueConverter(IValueConverter) http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx 를 사용해 볼 수 있습니다.
여기 제 뒤통수에, 다음과 같은 것이 있습니다.
public class DoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
return (double)value;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
var doubleValue = Convert.ToDouble(value);
return (doubleValue == 0 ? null : doubleValue);
}
}
(하지만 약간의 조정이 필요할 수도 있습니다.)
언급URL : https://stackoverflow.com/questions/1895453/set-value-to-null-in-wpf-binding
반응형
'programing' 카테고리의 다른 글
변환합니다.Null 가능한 유형에서 ChangeType()이 실패함 (0) | 2023.05.05 |
---|---|
SQL Azure의 데이터베이스 간에 쿼리할 수 없음 (0) | 2023.05.05 |
Bash를 사용하여 표준 출력과 표준 오류를 모두 파일로 리디렉션하고 추가하는 방법 (0) | 2023.05.05 |
Angular 응용 프로그램이 프로덕션 모드 또는 개발 모드에서 실행 중인지 확인하는 방법 (0) | 2023.05.05 |
Windows용 Docker 오류: "BIOS에서 하드웨어 지원 가상화 및 데이터 실행 보호를 사용하도록 설정해야 합니다." (0) | 2023.05.05 |