2015-03-26 5 views
2
List<MyItem> Reports = new List<MyItem>(); 

public class MyItem 
    { 
     public int CountAnswers{ get; set; } 
     public DateTime DateTimeStartTime { get; set; } 
    } 

Я отображая его в ListBox с помощью Binding:Видимость связываясь с элементом списка

<ListBox Name="QuestionList" ItemsSource="{Binding Reports}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate >    
      <TextBlock Text="{Binding CountAnswers}"/>      
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Я хочу, чтобы отобразить только те элементы, где CountAnswers больше, чем 0. У меня есть 100 пунктов, но лишь немногие из них имеют CountAnswers> 0.

ответ

2

Затем с помощью LINQ ...

public IEnumerable<MyItem> ReportsWithAnwers 
{ 
    get 
    { 
     return Reports.Where(x => x.CountAnswers > 0); 
    } 
} 

<ListBox Name="QuestionList" ItemsSource="{Binding ReportsWithAnwers}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate >    
      <TextBlock Text="{Binding CountAnswers}"/>      
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+0

И что, если я хочу отображать также DateTimeStartTime –

+0

Оберните свой текстовый блок в стеке и добавьте следующий и привяжите его так же, как свойство countsanswers – puko

+0

спасибо, его помощь –

Смежные вопросы