2016-05-10 20 views
0

我正在使用BooleanToVisibilityConvertor來處理ListBox DataTemplate中的TextBlock的可見性。我可以申報多個轉換器嗎? WP8

這裏是我的XAML代碼:

<phone:PhoneApplicationPage.Resources> 
    <Converters:BooleanToVisibilityConvertor x:Key="booleanToVisibilityConvertor"/> 
    </phone:PhoneApplicationPage.Resources> 

    <TextBlock Grid.Row="2" HorizontalAlignment="Right" Padding="0,0,7,0" Visibility="{Binding AverageConsumption, Converter={StaticResource booleanToVisibilityConvertor}}"> 
    <Run Text="{Binding AverageConsumption}"/> 
    <Run Text="l./100 km."/> 
    </TextBlock> 

而後面的代碼:

public class BooleanToVisibilityConvertor : IValueConverter 
{ 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     { 
      if (value != null) 
      { 
       if (!string.IsNullOrEmpty(value.ToString())) 
       { 
        return Visibility.Visible; 
       } 

      } 
      return Visibility.Collapsed; 
     } 
    } 

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

這是工作正確的,但我需要一個更(逆轉)轉換器用於放置在相同的另一個TextBlock的當{Binding AverageConsumption}不爲空或空時,第一個TextBlock將是易分解的,第二個將會被摺疊,反之亦然,所以當使用靜態文本=「Partial Refueling」時,位置(Grid.Row =「2」Horizo​​ntalAlignment =「Right」事情是這樣的:

class BooleanToVisibilityConvertorReversed : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     { 
      if (value != null) 
      { 
       if (!string.IsNullOrEmpty(value.ToString())) 
       { 
        return Visibility.Collapsed; 
       } 
      } 
      return Visibility.Visible; 
     } 
    } 

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

我曾嘗試聲明另一個轉換器在XAML: '類型的第一次機會異常' System.Windows:

<phone:PhoneApplicationPage.Resources> 
    <Converters:BooleanToVisibilityConvertor x:Key="booleanToVisibilityConvertor"/> 
    <Converters:BooleanToVisibilityConvertorReversed x:Key="booleanToVisibilityConvertorReversed"/> 
    </phone:PhoneApplicationPage.Resources> 

但上的InitializeComponent()有一個例外。 Markup.XamlParseException'發生在System.Windows.ni.dll' 我該如何解決這個問題?

+0

你爲什麼認爲這條線是罪魁禍首? – ixSci

+0

我認爲原因在這裏:它只是不能初始化頁面。我已經刪除了其他轉換器,並試圖只用這個,但仍然有相同的例外。 –

+0

如果你刪除它的錯誤將會消失?也許有一些隱藏的符號在那裏?嘗試重新輸入它,但我仍然使用智能感知幫助 – ixSci

回答

0

好像我找到了你的問題。你的BooleanToVisibilityConvertorReversed班是不公開的。將其公開並且您的問題應該消失。

+0

我們幾乎越過了我們的答案哈哈。我剛剛找到相同的東西,它現在正在工作。不管怎樣,謝謝你!你是第一個,所以我會標記你回答:) –

相關問題