我有一个ItemsControl绑定到一些对象的集合 在ItemsControl的ItemTemplate中,我有一个绑定到firstName的文本框 我想在firstName文本框文本中添加一个星号 当另一个评论文本块更新时
我该怎么做?
答案 0 :(得分:0)
我不知道'评论'是否是项目级别或全局的信息,并且来自“神秘”textBlock的源更新(不是更好直接绑定?)
但无论如何,如果你需要一个星号作为绑定字符串的一部分(否则,在单独的元素中,它可能带有隐藏\ visible的触发器),你需要MultiBinding
使用Converter
:
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding>
<MultiBinding.Converter>
<local:IsCommentConverter />
</MultiBinding.Converter>
<Binding Path="FirstName" />
<Binding ElementName="txtBlockComment" Path="Text" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
非常简单的转换器:
public class IsCommentConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
var firstName = (string)values[0];
var commnet = (string)values[1];
return string.IsNullOrEmpty(commnet) ? firstName : firstName + "*";
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}