【问题标题】:Silverlight 4 DataGrid border around a column列周围的 Silverlight 4 DataGrid 边框
【发布时间】:2010-10-07 15:05:33
【问题描述】:

无论如何,我一直无法找到在silverlight 数据网格中的列周围动态添加边框。这是我的数据网格的 xaml:

<sdk:DataGrid x:Name="PlannedAndBookedMonthlyTable" ItemsSource="{Binding}" AutoGenerateColumns="False" Margin="5,0,5,5">
   <sdk:DataGrid.Columns>
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderName" Header="" Binding="{Binding SeriesName}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderJan" Header="Jan" Binding="{Binding JanValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderFeb" Header="Feb" Binding="{Binding FebValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderMar" Header="Mar" Binding="{Binding MarValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderApr" Header="Apr" Binding="{Binding AprValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderMay" Header="May" Binding="{Binding MayValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderJun" Header="Jun" Binding="{Binding JunValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderJul" Header="Jul" Binding="{Binding JulValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderAug" Header="Aug" Binding="{Binding AugValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderSep" Header="Sep" Binding="{Binding SepValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderOct" Header="Oct" Binding="{Binding OctValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderNov" Header="Nov" Binding="{Binding NovValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderDec" Header="Dec" Binding="{Binding DecValue}" />
      <sdk:DataGridTextColumn x:Name="MonthlyHeaderTotal" Header="Total" Binding="{Binding Total}" />
   </sdk:DataGrid.Columns>
</sdk:DataGrid>

这是我想要完成的效果:

如何设置取决于当前日历月的数据列的边框?

【问题讨论】:

    标签: silverlight datagrid silverlight-4.0 border


    【解决方案1】:

    DataGrid 中的每一行都是一个模板,每个单元格也是如此。普通的 DataGrid 没有单元格和当前单元格位置的概念,只有选定的行。

    如果您能够获得足够的位置信息,我会说您可以在 DataGrid 上覆盖边框,但调试器显示 DataGrid 中没有足够的信息来计算当前选定单元格的位置。

    一种可能的选择

    我能想到的使用 DataGrid 执行此操作的唯一方法是在单个单元格控件(例如 DataGrid 中的文本框)上捕获焦点事件并使用所选控件的位置相对于父级确定边界位置。每列都需要是模板列,以便您可以连接 GotFocus 事件。

    否则...

    ...您将需要尝试不同类型的控制来获得您想要的结果。

    您可以使用普通的旧网格,例如充满了 TextBox 控件,但您需要自己处理网格的选择和键盘导航。

    如果预算允许,我会四处寻找 Silverlight 的第 3 方电子表格控件。否则,看看是否有人在 Codeplex 或其他地方构建了一个。

    【讨论】:

    • 我不得不使用普通的旧网格来获得所需的外观。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2018-08-17
    • 1970-01-01
    • 2015-01-10
    • 2011-04-18
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多