在ViewModel中显示控件上的自定义名称而不是变量名称

时间:2016-06-25 11:06:45

标签: c# mvvm

我是这样的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等等。

我想知道是否可以显示而不是变量名称是自定义名称。提前谢谢。

2 个答案:

答案 0 :(得分:1)

@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。

答案 1 :(得分:0)

您可以为列提供自定义名称,Datagrid中的属性如HeaderText允许您选择列名称,但您必须使用DataColumn控件单独绑定每个列。