2015-12-22 19 views
0

我的對象有屬性像這樣標籤一樣簡單。WPF綁定的字符串列表儘可能

我想該屬性綁定到WPF一個Label所以它顯示的名字,如:

1,名稱2,名稱3

我綁定這樣當前但不顯示任何內容:

<Label Name="lblNames" Content="{Binding Names}"/> 
+1

一個文本框?這意味着雙向綁定。如果用戶編輯文本框的內容,您希望發生什麼? –

+0

該文本框不可編輯。想象它只是一個標籤。謝謝 – pixel

+0

只需使用值轉換器。拿這個清單。如果不是,則檢查它是否爲空然後使用string.join(「,」,list.ToArray()) –

回答

3

有兩種解決方案在這裏:

  1. (簡單)創建視圖模型對象上的附加計算屬性以暴露列表作爲逗號分隔的列表:public string NameList { get { return string.Join(", ", this.Names); } }
  2. (更硬)創建一個ValueConverter該連接清單中的元素;並綁定到你的列表。
3

您可以添加的IValueConverter

internal class ListToString : IValueConverter 
    { 

     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      if (value is List<string>) 
      { 
       return string.Join(", ", value); 
      } 

      return null; 
     } 


     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 

和XAML

<Label Name="lblNames" Content="{Binding Names,Converter={StaticResource ListToString}}"/> 
相關問題