FirstName과 LastName이라는 두 개의 속성이 있으며 Multibinidng 및 변환기를 사용하여 TextBlock에 바인딩되어 FullName을 FirstName + LastName으로 표시합니다.변환기에서 변경하면 바인딩 된 속성의 변경 사항이 통보됩니까?
FIRSTNAME = "키 쇼어" 성 = "쿠마"나는 키 쇼어는 텍스트 변경 "가 표시됩니다 컨버터 내 TextBlock을 실행 후"변경된 텍스트 "
values[1] = "Changed Text";
으로 성을 변경 컨버터에서
"하지만 성 속성 LastName에는 여전히 마지막 값"Kumar "가 있습니다. 실행 후 LastName 속성에 "Changed Text"값이 표시되지 않는 이유는 무엇입니까?
변환기에서 변경 한 내용이 바운드 속성에 통지됩니까?
<Window.Resources>
<local:NameConverter x:Key="NameConverter"></local:NameConverter>
</Window.Resources>
<Grid>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource NameConverter}">
<Binding Path="FirstName"></Binding>
<Binding Path="LastName"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
변환기 :
public class NameConverter:IMultiValueConverter
{
#region IMultiValueConverter Members
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
values[1] = "Changed Text";
return values[0].ToString() + " " + values[1].ToString();
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
Person 속성 자체가 변경되지 않고 이름 만 변경 되었기 때문에 작동하지 않습니다. 따라서 바인딩이 새로 고쳐지지 않고 변환기가 호출되지 않습니다. –