2017-01-07 4 views
0

Кто-нибудь знает, почему вызывается только второй конвертер isvisible?
Если я изменил последовательность, тогда вызывается только новый второй конвертер.
Конвертер 1 - DiaryTypeNahrungsaufnahmeToBoolConverter и преобразователь2 - DiaryTypeAuswirkungToBoolConverter.Xamarin Forms/XAML: конвертер не называется

<ListView> 
    <ListView.ItemTemplate> 
    <DataTemplate>  
     <ViewCell> 
      <RelativeLayout IsVisible="{Binding Type, Converter={StaticResource converter1}}"></RelativeLayout> 
      <RelativeLayout IsVisible="{Binding Type, Converter={StaticResource converter2}}"></RelativeLayout> 
     </ViewCell> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

Код конвертер:

public class DiaryTypeNahrungsaufnahmeToBoolConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     try 
     { 
      if (value is LibChemotherapie.DiaryType) 
      { 
       return ((LibChemotherapie.DiaryType)value) == LibChemotherapie.DiaryType.Food; 
      } 
      return false; 
     } 
     catch (Exception) 
     { 
      return false; 
     } 

    } 

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

public class DiaryTypeAuswirkungToBoolConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     try 
     { 
      if (value is LibChemotherapie.DiaryType) 
      { 
       return ((LibChemotherapie.DiaryType)value) == LibChemotherapie.DiaryType.Effect; 
      } 
      return false; 
     } 
     catch (Exception) 
     { 
      return false; 
     } 
    } 

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

Спасибо за помощь.

+0

Каков код для ваших конвертеров? Как только вопрос сформулирован прямо сейчас, он слишком широк, поэтому ответов слишком много. Пожалуйста, добавьте более подробную информацию, иначе вам будет сложно помочь. – Demitrian

+0

@Demitrian okay добавлен конвертер Код – Ralf

+0

Где вы определили 'конвертер1' и' converter2'? Или вы просто использовали эти имена, чтобы избежать ввода имен конвертеров в вашем коде для вашего вопроса? – Demitrian

ответ

0

По подсказке от Джейсона, сейчас он работает! Я изменил xaml, так что ViewCell состоит только из одного представления. В этой связи я добавил два своих относительных макета со свойством binding.

<ListView> 
    <ListView.ItemTemplate> 
    <DataTemplate>  
     <ViewCell> 
      <RelativeLayout> 
       <RelativeLayout IsVisible="{Binding Type, Converter={StaticResource converter1}}"></RelativeLayout> 
       <RelativeLayout IsVisible="{Binding Type, Converter={StaticResource converter2}}"></RelativeLayout> 
      </RelativeLayout> 
     </ViewCell> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView>