我有一个DataGrid
,其列定义如下:
<DataGrid ItemsSource="{Binding Events}" SelectionMode="Single" SelectionUnit="FullRow">
<DataGrid.Columns>
<DataGridTextColumn Header="Unit" Width="Auto" Binding="{Binding UnitId}"/>
...
</DataGrid.Columns>
</DataGrid>
问题是:我被绑定到只有Events
属性的UnitId
列表。我不想显示UnitId
。我想显示Unit的Description
。我的ViewModel包含IList<Unit>
,如下所示:
public class Unit
{
public int UnitId {get;set;}
public string Description { get;set;}
}
但是ViewModel不是DataGrid的datacontext,所以我不得不做一些RelativeSource的恶作剧。
因此,例如,如果我的单位UnitId
为1,Description
为&#34;上层文件夹&#34;,我希望单元格显示&#34;上层文件夹&#34;
我想我可以使用IValueConverter
这样的东西,但我不确定这是否是最简单的方法。
答案 0 :(得分:2)
Event
班。示例:
public class Event
{
// Other properties...
//Replace UnitId property with this property
public Unit Unit {get;set;}
}
Description
类的Unit
属性。示例:<DataGridTextColumn Header="Unit" Width="Auto" Binding="{Binding Unit.Description}"/>