1

当用户从我的 WPF 页面上的列表中选择一个项目时,我试图在另一个 DataGrid 中显示该项目的枚举列表:

<DataGrid Grid.Row="1" AutoGenerateColumns="False" IsReadOnly="True" 
    HeadersVisibility="Column"
    ItemsSource="{Binding SelectedAdGroupWithRoles.PrestoRoles}"
    SelectedItem="{Binding SelectedPrestoRole}">                    
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding PrestoRole}" Header="Role" Width="*"/>
    </DataGrid.Columns>
</DataGrid>

PrestoRole 是一个枚举。

我不确定如何设置最终绑定:

<DataGridTextColumn Binding="{Binding PrestoRole}" Header="Role" Width="*"/>

我尝试了一些方法,但 PrestoRole 名称不会显示。我怎样才能让它显示?

在一个完全独立的表单中,我在一个列表框中列出了 PrestoRole 枚举的每个成员:

<ListBox Grid.Row="0" ItemsSource="{Binding Roles}" SelectedItem="{Binding SelectedRole}" Height="auto">

视图模型上的 Roles 属性如下所示:

public List<PrestoRole> Roles

枚举成员在那里显示得很好。我只是无法让它显示在 DataGrid 中。

4

1 回答 1

2

这应该有效:

<DataGridTextColumn Binding="{Binding}" Header="Role" Width="*"/>

当您定义一列时,该列的DataContext设置为每一行的当前项,因此您需要做的就是绑定到它。

于 2013-07-19T22:30:47.737 回答