WPF DataGrid 怎样在一列绑定显示多个字段的值?

nttuse2 2015-12-26 05:47:02
比如一个对象有两个属性code和name。
怎样在datagrid的一列里面同时显示这两个属性的值?如下效果。
---------------------------
| code (name) |
---------------------------

我现在只能绑定到两列:
<DataGrid.Columns>
<DataGridTextColumn Header="Code" Binding="{Binding Path= Code}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Path= Name}"/>
</DataGrid.Columns>

想要类似下面的这种绑定,能实现么?
<DataGrid.Columns>
<DataGridTextColumn Header="Code" Binding="{Binding Path= Code(Name)}"/>
</DataGrid.Columns>
...全文
2093 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

在后台怎么用MultiBinding

宇峰科技 2016-04-24
  • 打赏
  • 举报
回复
用multbinding和模板都能很好的解决这样的问题
JoneG 2016-04-22
  • 打赏
  • 举报
回复
对, 用 MultiBinding。 MultiBinding 不复杂,所有能用 Binding 的地方都可以改成 MultiBinding。不一定要用 Converter,你这个要求可以用 StringFormat 来做。 拷贝 8 楼这个代码改改: <DataGridTextColumn Header="时间"> <DataGridTextColumn.Binding> <MultiBinding StringFormat="{}{0}({1})"> <Binding Path="Date"></Binding> <Binding Path="Time"></Binding> </MultiBinding> </DataGridTextColumn.Binding> </DataGridTextColumn>
  • 举报
回复
@JoneG 这个MultiBinding在后台怎么用
  • 举报
回复
@JoneG dataGrid.Columns.Add(new DataGridTextColumn {Header="时间",Binding=这里面要输入Date ,Time这些字段});
夏天的枫 2016-03-29
  • 打赏
  • 举报
回复
把数据合成一个然后binding上
songbing774933 2016-03-29
  • 打赏
  • 举报
回复
<DataGridTextColumn Header="时间">
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource ResourceKey}">
<Binding Path="Date"></Binding>
<Binding Path="Time"></Binding>
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
songbing774933 2016-03-29
  • 打赏
  • 举报
回复
<DataGridTemplateColumn Header="序号" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding No}" TextWrapping="WrapWithOverflow"></TextBlock>
<TextBlock Text="{Binding No}" TextWrapping="WrapWithOverflow"></TextBlock>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

想绑定多少个变量都可以,排列自己写
songbing774933 2016-03-29
  • 打赏
  • 举报
回复
或者用MultiBinding
baidu_31302759 2016-03-27
  • 打赏
  • 举报
回复
既然你想合成一列,为啥不在sql中就把两列的数据合成了呢
wangyue4 2015-12-29
  • 打赏
  • 举报
回复
zp2000 2015-12-28
  • 打赏
  • 举报
回复
楼上的方法可以,你这个只需要把code和name先取出来,然后赋值给DataGrid就可以,这种好像不能直接绑定这样简单处理
exception92 2015-12-27
  • 打赏
  • 举报
回复
方法1:在类中增加一个字段,get 的时候 返回你的code与name的组合。 方法2:写一个转换类,不懂的话就去网上查。 还需要了解 如何绑定一个对象。 类似: Binding="{Binding }“

8,731

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧