我有listView
。我需要的是显示此列表中的单选按钮列表。对于Name
中的每个不同exercises
(基本上是数据库表中的条目集合),应该有一个单选按钮,其内容为Name
。
private void GetChartData()
{
ExercicesList.ItemsSource = exercises.Select(n => n.Name).Distinct();
}
到目前为止,它显示单选按钮,但不显示其内容。
<ListView Name="ExercicesList" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0 100 0 0">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<RadioButton Name="ExerciceCheck" GroupName="onlyOne" Content="{Binding Name, Mode=OneWay}" Grid.Column="0" IsChecked="False" Checked="ExerciceCheck_Checked"></RadioButton>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:1)
...
此代码仅提取ExercicesList.ItemsSource = exercises.Select(n => n.Name).Distinct();
(Name
),而不提取IEnumerable<string>
对象(exercise
)。 IEnumerable<exercise>
绑定尝试访问Name属性,而RadioButton.Content
中没有exsist。您可以对元素本身进行绑定 - 没有属性:
string
它可以正常工作,但您在逻辑中稍后将无法访问其他属性。
相反,保持XAML不变,只需在列出列表时这样写:
Content="{Binding}"
因为linq中没有ExercicesList.ItemsSource = exercises.GroupBy(n => n.Name).Select(g => g.First());
,所以请使用GropyBy&amp;从每个组中选择第一个,以获得相同的效果。