IMultiValueConverter를 Link에서 구현하여 여러 값을 하나의 레이블에 바인딩합니다. 그러나mutiple 값을 하나의 레이블에 바인딩하는 방법은 무엇입니까?
namespace MyApp
{
[ValueConversion(typeof(object), typeof(string))]
public class ConcatenateFieldsMultiValueConverter : IMultiValueConverter
{
public object Convert(
object[] values,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture
)
{
string strDelimiter;
StringBuilder sb = new StringBuilder();
if (parameter != null)
{
//Use the passed delimiter.
strDelimiter = parameter.ToString();
}
else
{
//Use the default delimiter.
strDelimiter = ", ";
}
//Concatenate all fields
foreach (object value in values)
{
if (value != null && value.ToString().Trim().Length > 0)
{
if (sb.Length > 0) sb.Append(strDelimiter);
sb.Append(value.ToString());
}
}
return sb.ToString();
}
public object[] ConvertBack(
object value,
Type[] targetTypes,
object parameter,
System.Globalization.CultureInfo culture
)
{
throw new NotImplementedException("ConcatenateFieldsMultiValueConverter cannot convert back (bug)!");
}
}
}
내가 XAML (네임 스페이스의 MyApp)에서 내 창 속성에
xmlns:local="clr-namespace:MyApp"
를 참조하고 창에
<Window.Resources>
<local:ConcatenateFieldsMultiValueConverter x:Key="mvc"/>
</Window.Resources>
내 별도의 클래스 ConcatenateFieldsMultiValueConverter가 인식되지 내에서 다음과 같이 정의하고있다 .
이 클래스를 Window.Resources에서 식별 할 수없는 이유는 무엇입니까?
변환기의 네임 스페이스 표시 –
변환기의 네임 스페이스가 추가되었습니다. – user3524628