НЕ mySQL, но для других людей, которые находят этот вопрос и используют SQL, другой способ разрешить проблему наибольшая-n-группа использует Cross Apply
в MS SQL
WITH DocIds AS (SELECT DISTINCT id FROM docs)
SELECT d2.id, d2.rev, d2.content
FROM DocIds d1
CROSS APPLY (
SELECT Top 1 * FROM docs d
WHERE d.id = d1.id
ORDER BY rev DESC
) d2
Если вы определяете ListView
в XAML:
<ListView x:Name="listView"/>
Затем вы можете добавлять столбцы и заполнять их в C #:
public Window()
{
// Initialize
this.InitializeComponent();
// Add columns
var gridView = new GridView();
this.listView.View = gridView;
gridView.Columns.Add(new GridViewColumn {
Header = "Id", DisplayMemberBinding = new Binding("Id") });
gridView.Columns.Add(new GridViewColumn {
Header = "Name", DisplayMemberBinding = new Binding("Name") });
// Populate list
this.listView.Items.Add(new MyItem { Id = 1, Name = "David" });
}
См. определение MyItem
ниже.
Однако его легче определить столбцы в XAML (внутри определения ListView
):
<ListView x:Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
А затем просто заполните список в C #:
public Window()
{
// Initialize
this.InitializeComponent();
// Populate list
this.listView.Items.Add(new MyItem { Id = 1, Name = "David" });
}
См. определение MyItem
]
MyItem
Определение MyItem
определяется следующим образом:
public class MyItem
{
public int Id { get; set; }
public string Name { get; set; }
}