【问题标题】:WPF change itemscontrol textbox item according to another controlWPF 根据另一个控件更改 itemscontrol 文本框项
【发布时间】:2016-05-01 14:10:36
【问题描述】:

我有一个 ItemsControl 绑定到一些对象的集合 在 ItemsControl 的 ItemTemplate 中,我有一个绑定到 firstName 的文本框 我想在 firstName 文本框文本中添加一个星号 当另一个评论文本块更新时

我该怎么做?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    我不知道“评论”是项目级别的信息还是全局信息,以及“神秘”文本块的更新来源是什么(直接绑定不是更好吗?) 但无论如何,如果您需要一个星号作为绑定字符串的一部分(否则,在单独的元素中,它可能会触发隐藏\可见),您需要使用 MultiBindingConverter

    <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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2014-11-05
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多