代码之家  ›  专栏  ›  技术社区  ›  amurra

Silverlight 4列周围的数据报边框

  •  0
  • amurra  · 技术社区  · 15 年前

    我无论如何也找不到在Silverlight数据报的列周围动态添加边框的功能。这是我的DataGrid的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=“绑定序列名称”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderJan”header=“Jan”binding=“binding JanValue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderWeb”header=“feb”binding=“binding febValue”/>gt;
    <sdk:dataGridTextColumn x:name=“monthlyheadermar”header=“mar”binding=“binding marvalue”/>gt;
    <sdk:dataGridTextColumn x:name=“monthlyheaderapr”header=“apr”binding=“binding aprvalue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderMay”header=“may”binding=“binding mayValue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderJun”header=“jun”binding=“binding junValue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderJul”header=“jul”binding=“binding julvalue”/>gt;
    <sdk:datagridtextcolumn x:name=“monthlyheaderaug”header=“aug”binding=“binding augvalue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderSep”header=“sep”binding=“binding sepValue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderRoct”header=“oct”binding=“binding octValue”/>gt;
    <sdk:dataGridTextColumn x:name=“MonthlyHeaderNov”header=“nov”binding=“binding novValue”/>gt;
    <sdk:dataGridTextColumn x:name=“monthlyheaderdec”header=“dec”binding=“binding decvalue”/>gt;
    <sdk:dataGridTextColumn x:name=“monthlyheadertotal”header=“total”binding=“binding total”/>gt;
    </sdk:datagrid.columns>
    </sdk:datagrid>
    < /代码> 
    
    

    这就是我想要达到的效果:

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

    <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>
    

    这就是我想要达到的效果:

    alt text

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   iCollect.it Ltd    15 年前

    数据报中的每一行都是一个模板,每个单元格也是。普通的数据报没有单元和当前单元位置的概念,只是选择了行。

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

    一个可能的选择

    我能想到的处理DataGrid的唯一方法是捕获单个单元格控件(例如,DataGrid中的文本框)上的焦点事件,并使用所选控件的位置。 相对于父母 计算出边界位置。每一列都需要是一个模板化的列,这样您就可以挂接gotfocus事件。

    推荐文章