我有一個包含玩家和分數的表格(名稱:Mike分數:10,名稱:Peter分數:5等)以及包含3張圖片的視圖銅牌,銀牌和金牌。 在每張圖片下方,我想每週/每週顯示獲獎者的玩家名稱。 很可能會有多個銅牌,銀牌或金牌。使用LINQ獲得1-2-3分數並將它們綁定到視圖
在我TotalViewModel我有一個ObservableCollection所有總成績:
public const string TotalsPropertyName = "Totals";
private ObservableCollection<TotalViewModel> _totals;
public ObservableCollection<TotalViewModel> Totals
{
get
{
return _totals;
}
set
{
if (_totals == value)
return;
_totals = value;
RaisePropertyChanged(TotalsPropertyName);
}
}
我想用,因爲多個號碼一個,兩個,三個分數的IEnumerable的:
public IEnumerable<TotalViewModel> FirstOne { get; private set; }
private void UpdateFirstOne()
{
this.FirstOne = this.Totals.Where(elem => elem.Model.score > 0).OrderByDescending(e => e.Model.score);
}
private void Totals_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
try
{
this.UpdateFirstOne();
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
}
的我的View的DataContext對於直接綁定工作正常,它在UserControl中設置:
DataContext="{Binding MainTotal, Source={StaticResource Locator}}
但結果並不在我的DataGrid中顯示(猜我正在做一個愚蠢的錯誤這裏):
<data:DataGrid ItemsSource="{Binding FirstOne, Mode=OneWay}" AutoGenerateColumns="true" Height="100" Name="dataGrid1" Width="120" />
所以我有2個問題:
- 我如何獲得所需的集合1/2/3分數?
- 如何在View中獲取它們?
謝謝。
乍一看我看不到任何東西,是錯誤的。首先,檢查你的輸出窗口,確保你沒有數據綁定問題。其次,確保UpdateFirstOne被調用,並返回元素。我們可以從那裏看看 –