将单选按钮内容绑定到数据集

时间:2017-11-15 15:13:46

标签: c# uwp

我有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>

1 个答案:

答案 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;从每个组中选择第一个,以获得相同的效果。