2012-02-29 10 views
1

我在列表視圖中有一個textblock,當它爲空或空時,我需要隱藏或摺疊。我嘗試使用字符串轉換器,但不這樣做。如何在WP7 Silverlight中獲取XAML TextBlock以在其不包含數據時摺疊?

還有其他想法嗎?

更新#1: 這裏是正文塊內的代碼:

Visibility="{Binding Converter={StaticResource StringConverter}} 

這裏是轉換器:

public class StringConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, 
     CultureInfo culture) 
     { 
      return string.IsNullOrEmpty(value.ToString()) ? Visibility.Collapsed : Visibility.Visible; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, 
     CultureInfo culture) 
     { 
      return DependencyProperty.UnsetValue; 
     } 

    } 
+1

請出示你的代碼。綁定之前是否可以過濾數據源? – 2012-02-29 23:04:26

+0

在發佈代碼後添加了代碼.. – 2012-02-29 23:06:12

+0

,我意識到我的錯誤。謝謝大家的答案。這裏是代碼Visibility =「{Binding Description,Converter = {StaticResource StringConverter}} – 2012-02-29 23:14:45

回答

1

我會建議你的文本框創建文本和知名度綁定。

下面是您擁有的視圖模型屬性的示例。

public String TextBoxText 
{ 
    get { return textBoxText; } 
    set 
    { 
     if (value != textBoxText) 
     { 
      textBoxText= value; 
      SetTextBoxVisibility(); 
      OnPropertyChanged("TextBoxText"); 
     } 
    } 
} 
private String textBoxText; 

public Visibility TextBoxVisibility 
{ 
    get { return textBoxVisibility; } 
    set 
    { 
     if (value != textBoxVisibility) 
     { 
      textBoxVisibility= value; 
      OnPropertyChanged("TextBoxVisibility"); 
     } 
    } 
} 
private Visibility textBoxVisibility; 

public void SetTextBoxVisibility() 
{ 
    this.TextBoxVisibility = String.IsNullOrEmpty(this.TextBoxText) ? Visibility.Collapsed : Visibility.Visible; 
} 
+0

爲什麼你建議通過轉換器來做這件事?我只會這樣做,如果轉換器的性能影響影響整體性能。還有很多其他的東西可以影響性能,並且可以在沒有爲每個使用這種轉換器的地方創建額外屬性的開銷的情況下進行改進,但是我很想聽聽你的推理。 – 2012-02-29 23:15:24

+0

好的問題,在我們開始的早期但我們很快發現通過利用MVVM模式,我們的成員變得更容易進行單元測試,調試更直觀,與我們創建的許多廣義轉換器相反。 – KodeKreachor 2012-02-29 23:17:48

+0

好點,感謝分享。 – 2012-02-29 23:27:21

0

你還沒有看到您的代碼的唯一的事情是你實例化的轉換器類。這是因爲你沒有這樣做?

通常你會添加一些像這樣的App.xaml:

<Application.Resources> 
    <ResourceDictionary> 
     <conv:StringConverter x:Key="StringConverter " /> 
    </ResourceDictionary> 
</Application.Resources> 
相關問題