2010-08-30 49 views
1

这似乎是一个相当直接的问题,但我挣扎了一下。 我有一个对象的集合,我已经绑定到了一系列GridViewColumns对象的每个属性,我想要显示的网格。XAML - 将值转换为特定的字符串?

但是,其中一列显示为int,我想将其转换为字符串。如果可能的话,我希望转换发生在不同的类中(在我的业务层)。

这里是我为GridViewColumn在我的XAML: <GridViewColumn Header="Status" DisplayMemberBinding="{Binding CourtEventStatusCodeId}" />

是什么在我的业务层的方法需要的样子,我如何用我的XAML中使用它一起选择?

由于提前,
桑尼

回答

0

你需要一个ValueConverter - 检查出Binding.Coverter属性,它应该让你开始在正确的道路上。

你必须像这样...

<UserControl.Resources> 
    <local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" /> 
</UserControl.Resources> 

...然后使用时...

Converter={StaticResource BoolToVisibilityConverter} 

...你可以重复使用,无论你在同一个喜欢项目。

+0

我试过了,但所有的代码示例都显示它作为特定页面的代码的一部分。任何方式,我可以找到这个在一个单独的类,因为我可能需要从多个不同的位置调用此,我不想复制和粘贴。 – 2010-08-30 17:00:40

+0

您可以在单独的课程中轻松创建该课程,并在整个项目的各种XAML中重复使用该课程。 – 2010-08-30 17:02:29

+0

我如何从我的页面中的XAML访问它?代码是什么样的? – 2010-08-30 17:03:23

-1

由于该值由用户定义,并且不能是枚举常量,因此用户在数据库中定义的值是多少?也许你想让你的SQL加入这些表,并用连接字符串从连接表中返回列。

+0

这打破了业务或表示层的目的。我不希望演示逻辑与我的对象。 – 2010-08-30 17:02:07

+0

@Sonny Boy:有一个dal对象表示一个int列,因为枚举不再是表示逻辑,而是将xml列表示为xdocument。你不会把它表示成一个字符串吗? – 2010-08-30 17:13:51

+0

CourtEventStatusCode是一个可以表示任意数量的用户定义值的类。虽然我宁愿将它定义为在设计时确定的枚举,但恐怕这不是一种选择。 – 2010-08-30 17:16:23