2014-02-27 33 views
0

我有一個綁定到ObservableCollection(MyObject)的LongListSelector我只想在容器(網格)內顯示圖像時,只有myobject.BoolProperty = True。我怎樣才能做到這一點 ? 不幸的是我們似乎無法從代碼訪問LongListSelector中的元素背後...在我的XAML頁面我要顯示的圖像(IsSuscribed)只有在布爾屬性爲true ...如何僅在bool = true時纔在LongListSelector中顯示元素?

<phone:LongListSelector x:Name="llsAllDoclibs" 
            LayoutMode="List" 
            ItemsSource="{Binding}" 
            HideEmptyGroups="False"  
            Background="WhiteSmoke" 
            SelectionChanged="Doclibs_SelectionChanged" 
            Margin="20,20,20,20" 
            > 

       <phone:LongListSelector.ItemTemplate > 
        <DataTemplate > 
         <Grid 
          Height="auto" 
          Margin="0,20,0,0" 
          Background="White" 
          > 

          <StackPanel Margin="10,10,10,10"> 
           <Image HorizontalAlignment="Right" 
             VerticalAlignment="Center" 
             Source="/Images/BDocs/ico_action_valider.png" 
             x:Name="IsSuscribed"></Image> 
           <TextBlock 
            Text="{Binding NomDocLib}" 
            Foreground="#FF00485A"/> 
           <TextBlock 
            HorizontalAlignment="Right" 
            VerticalAlignment="Top" 
            Text="{Binding NbrElements}" 
            Foreground="#FF00485A"/> 
          </StackPanel>        

         </Grid> 
        </DataTemplate> 
       </phone:LongListSelector.ItemTemplate> 

      </phone:LongListSelector> 

編輯

我實現了這個code.It工作正常。但我想知道如何使用這個類與一個int值。如果值> 10我想顯示我的元素,否則我想隱藏它。我試圖通過一個int替換對象的價值,但我有一個錯誤...

public sealed class BooleanToVisibilityConverter : IValueConverter 
     { 

     public object Convert(object value, Type targetType, object parameter, CultureInfo language) 
     { 
      return (value is bool && (bool)value) ? Visibility.Collapsed : Visibility.Visible; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo language) 
     { 
      return value is Visibility && (Visibility)value == Visibility.Visible; 
     } 

} 

回答

0

以下屬性添加到您的Grid

Visibility="{Binding BoolValue,Converter={StaticResource BooleanToVisibilityConverter}}" 

應該很容易寫這樣的轉換器(實際上只有一行),但它是那裏許多框架的一部分。

+0

感謝您的代碼它工作正常,但實際上我有一個int值,所以我編輯我的問題。你能再幫我一下嗎? –

+0

但你只是寫了嗎?只需替換'Convert'函數中的代碼以適合自己。 'value'參數的類型爲'int',它根據內部邏輯返回'Visibility'(就像上面的'if'語句一樣,並且重命名該類,因爲它不再是從bool到可見性的轉換器。 –

相關問題