我有两个相关的实体:
public class Event
{
public string ID { get; set; }
public DateTime EventDate { get; set; }
public string EventData { get; set; }
public string DocID1 { get; set; }
public int DocID2 { get; set; }
public virtual Document Document1 { get; set; }
public virtual Document Document2 { get; set; }
}
public class Document
{
public string ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Number { get; set; }
}
还创建了 List 以在 WPF 中显示数据:
private ObservableCollection<Event> eventList;
public ObservableCollection<Event> EventList
{
get { return eventList; }
set
{
if (value != eventList)
{
eventList = value;
}
RaisePropertyChanged(nameof(EventList));
}
}
我的 EventList 的数据取自实体事件:
var query = DBContext.Events.Select(x => x).AsQueryable();
EventList = query.ToList();
我需要的是如果 DocID1 不为空,如何将 GridControl 列“colFirstName”值设置为等于“Document1.FirstName”,如果 DocID2 不为空,如何设置“Document2.FirstName”。我的 GridControl 的 XAML 代码如下,您能否帮助如何在 Xaml 中而不是在 ViewModel 中执行此操作,或者如果在 Xaml 中无法执行此操作,那么在 ViewModel 中执行此操作的最佳方法是什么。
<dxg:GridControl AutoPopulateColumns="False"
ItemsSource="{Binding EventList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn
x:Name="colEventData"
Width="120"
FieldName="EventData"
Header =" Event data"
Visible="True" >
</dxg:GridColumn>
<dxg:GridColumn
x:Name="colFirsnName"
Width="120"
FieldName="Document1.FirstName"
Header="First Name"
Visible="True"
VisibleIndex="1" />
</dxg:GridControl.Columns>
</dxg:GridControl>