将外键表示为WPF StackPanel GridViewColumn中的其他值
本文关键字:GridViewColumn 其他 StackPanel WPF 表示 | 更新日期: 2023-09-27 18:02:57
我有一个StackPanel,设置其GridColumns与实体的属性/表列的列。许多列是来自其他表的外键。下面的一个简单示例显示了这样的外键- CustomerID。
<StackPanel Orientation="Vertical" Margin="5">
<Label Content="Tests to Run" FontWeight="Bold" x:Name="TestsToRunLabel"/>
<ListView ItemsSource="{Binding SelectedTechnician.Tests}"
SelectedItem="{Binding SelectedTest}" x:Name="AvailableTestsListView" Height="140">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" Width="auto" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Test" Width="auto" DisplayMemberBinding="{Binding CustomerId}"/>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
正如预期的那样,这只是显示与键相关联的整数值,而不是一些"用户可读"的值,如Customer Name或其他一些有用的值。
如果可能的话,我如何"强制转换"或表示像CustomerId这样的外键以在Customer表中显示一些其他值?
这实际上会像现在一样获取键并到达Customer表并获取类似Customer的内容。在我的StackPanel中作为代表属性。
注意事项
Test和Customer是代码优先实体。我也使用MVVM,所以如果这是我需要在ViewModel而不是XAML中操作的东西,请让我知道。
为了解决我自己的问题,我在我的业务模型对象上创建了一组"仅显示"属性,它只执行一个LINQ查询来返回一个更有意义的属性/属性/列:
public string CustomerName
{
get
{
var db = new Context();
var customer = db.Customers.Find(CustomerId);
_customerName = customer.Name;
return _customerName;
}
}