我正在尝试特定CardView1.CardCaptionFormat条目,例如-显示每个特定人的姓名和姓氏作为每张卡的标题。

该代码可以工作,但是会显示LAST条目的名称和姓氏作为每张卡的标题。

这是代码:

foreach (DataRow x in ds.Tables[0].Rows)
{
    strNameSurname = x[0].ToString() + " " + x[1].ToString();
    cardView1.CardCaptionFormat = x[0].ToString() + " " + x[1].ToString();
}

//x[0] is the name of an individual, x[1] is the surname of an individual.


我希望这很清楚,每个人都可以理解!

最佳答案

检查以下有关CardView.CardCaptionFormat Property documentatopm的备注”


  CardCaptionFormat属性使您可以构造标题文本
  使用静态文本以及当前记录号和列
  价值观。 “ {0}”字符序列是当前字符的占位符
  记录编号。因此,默认属性值指定该卡
  字幕应包含“记录N”,后跟卡号。至
  显示卡片标题内的列值,您需要使用
  所需的列索引。例如,“ {1}”字符序列是
  第一列值的占位符,等等。


如果表绑定到网格,则可以在格式字符串中分配NameSurname列的列索引,然后它将根据您的要求自动反映标题。

假设您的名字和姓氏列索引分别为0和1。那么您的CardView.CardCaptionFormat属性将设置如下:

CardView.CardCaptionFormat = {0} + "" + {1}


资料来源:CardCaptionFormat
要显示自定义卡片标题,您应该处理CardView.CustomDrawCardCaption事件并显式设置CardInfo.CaptionInfo.CardCaption属性。我为您准备了一个例子。它在附件中。基本代码如下:

Private Sub CardView1_CustomDrawCardCaption(ByVal sender As System.Object, ByVal e As DevExpress.XtraGrid.Views.Card.CardCaptionCustomDrawEventArgs) Handles CardView1.CustomDrawCardCaption
    Dim view As DevExpress.XtraGrid.Views.Card.CardView = sender
    Dim s As String = String.Format("Subject: {0}", view.GetRowCellDisplayText(e.RowHandle, "ProductName"))
    CType(e.CardInfo, DevExpress.XtraGrid.Views.Card.ViewInfo.CardInfo).CaptionInfo.CardCaption = s
End Sub


有关更多参考:
How to set different CardCaptionFormat for multiple cards
Card Caption

07-25 22:47