在控件上显示自定义名称,而不是在ViewModel中显示变量名称
本文关键字:显示 ViewModel 变量名 自定义 控件 | 更新日期: 2023-09-27 17:49:24
我有一个这样的DataGrid:
<DataGrid
x:Name="TotalMatch"
ItemsSource="{Binding TotalMatch}"/>
我正在使用ViewModel模式,所以在我的属性中,我在这种情况下创建了一个用于存储数据的ObservableCollection。这个集合的结构是TotalMatch:
public class TotalMatch
{
public int InPlay { get; set; }
public int Terminated { get; set; }
public int Total { get; set; }
}
现在DataGrid列显示为变量名,所以:InPlay, Terminated等等。
我想知道是否有可能显示而不是自定义名称的变量名。
@Pharoah是正确的-有一些标准的列类型你可以使用,最简单的是DataGridTextColumn。所以你可能会得到:
<DataGrid
x:Name="TotalMatch"
ItemsSource="{Binding TotalMatchCollection}" AutoGenerateColumns="False"
>
<DataGridTextColumn Header="In Play" Binding="{Binding Path=InPlay}" />
<DataGridTextColumn Header="Terminated" Binding="{Binding Path=Terminated}" />
<DataGridTextColumn Header="The Total" Binding="{Binding Path=Total}" />
</DataGrid>
我对你的绑定有点惊讶——你看起来是将ItemSource设置为ObservableCollection中的单个元素,而你通常会将它设置为整个集合。所以我赌了一把,改变了代码片段中的ItemsSource。
您可以为列提供自定义名称,在Datagrid中有HeaderText之类的属性,可以让您选择列名,但是您必须使用dataccolumn控件单独绑定每个列