반응형
WPF 바인딩에서 값을 null로 설정
다음 줄을보십시오
<TextBox Text="{Binding Price}"/>
위에서이 Price 속성은 Decimal?
(Nullable decimal)입니다.
사용자가 텍스트 상자의 내용을 삭제하면 (예 : 빈 문자열을 입력하면) 자동으로 null을 사용하여 소스를 업데이트해야합니다 (VB의 아무것도 없음).
내가 'Xamly'를 수행하는 방법에 대한 아이디어가 있습니까?
.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
반응형
'IT박스' 카테고리의 다른 글
Java에서 오류 코드 / 문자열을 정의하는 가장 좋은 방법은 무엇입니까? (0) | 2020.07.23 |
---|---|
iOS 9 Xcode 7-애플리케이션이 상단과 하단에 검은 색 막대로 나타납니다 (0) | 2020.07.23 |
C #에서 foreach 루프를 벗어나려면 어떻게해야합니까? (0) | 2020.07.22 |
프로그래밍 방식으로 탐색 모음의 UIBarButtonItem? (0) | 2020.07.22 |
TextView.setTextSize가 비정상적으로 작동 함-다른 화면에 대해 textview의 텍스트 크기를 동적으로 설정하는 방법 (0) | 2020.07.22 |