2

我有一个 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>

正如预期的那样,这只是显示与键关联的整数值,而不是一些“用户可读”的值,例如客户名称或其他有用的值。

如果可能的话,我如何“转换”或表示像 CustomerId 这样的外键以在 Customer 表中显示其他值?

这基本上会像现在一样获得密钥并到达 Customer 表并在我的 StackPanel 中获取像 Customer.Name 这样的代表属性。

注意事项:

测试和客户是代码优先实体。我也在使用 MVVM,所以如果这是我需要在 ViewModel 而不是 XAML 中操作的东西,请告诉我。

4

1 回答 1

0

为了解决我自己的问题,我在我的业务模型对象上创建了一组“仅显示”属性,它们只是执行 LINQ 查询以返回更有意义的属性/属性/列:

public string CustomerName
{
    get
    {
        var db = new Context();

        var customer = db.Customers.Find(CustomerId);
        _customerName = customer.Name;

        return _customerName;
    }
}
于 2013-03-11T21:17:22.253 回答