2016-05-01 12 views
0

私は私がfirstNameのテキストボックスのテキスト 別にアスタリスクを追加したい私は、テキストボックスがfirstNameの にバインドされているのItemsControlのItemTemplateににあるいくつかのオブジェクト のコレクションにバインドされたのItemsControlを持っていますコメントのテキストブロックが更新されますWPFの変更

どうすればいいですか?

答えて

0

「コメント」がアイテムレベルまたはglobalyの情報であるかどうか、「ミステリー」textBlockのソースアップデート(直接バインドするのには適していません) アスタリスクが必要な場合は

<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(); 
    } 
} 
(\視認を非表示にするには、トリガとそうでない場合は、別々の要素で、その可能性)結合文字列の、あなたは ConverterMultiBindingを使用する必要があります
関連する問題