빈 문자열에 기본값을 제공하는 변환기가 있습니다. ConverterParameter에 바인딩을 추가 할 수 없으므로 대신 바인딩하는 변환기에 속성을 추가해야합니다.Windows Phone 8에서 코드를 통해 XAML 바인딩 확인
그러나 기본 값으로 되돌아 오는 값은 내 값 대신 "System.Windows.Data.Binding"문자열입니다.
코드에서이 바인딩을 어떻게 해결하여 원하는 현지화 된 실제 문자열을 반환 할 수 있습니까?
public class DefaultForNullOrWhiteSpaceStringConverter : IValueConverter
{
public object Default { set; get; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (!string.IsNullOrWhiteSpace((string)value))
{
return value;
}
else
{
if (parameter != null)
{
return parameter;
}
else
{
return this.Default;
}
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
그리고 내 XAML :
<phone:PhoneApplicationPage.Resources>
<tc:DefaultForNullOrWhiteSpaceStringConverter x:Key="WaypointNameConverter"
Default="{Binding Path=LocalizedResources.Waypoint_NoName, Mode=OneTime, Source={StaticResource LocalizedStrings}}" />
</phone:PhoneApplicationPage.Resources>
<TextBlock Text="{Binding Name, Converter={StaticResource WaypointNameConverter}}" />
모든 아이디어를 여기
나의 컨버터 클래스 (대답 https://stackoverflow.com/a/15567799/250254 기준)이야?
완벽한 - 감사합니다! – Gavin
편집 해 주셔서 감사합니다. 올바른 수정이므로 거부되었습니다. –
걱정하지 마세요. 동일한 문제가있는 다른 사람이 더 쉽게 사용할 수 있도록 코드를 편집하겠다고 생각했습니다.) – Gavin