Grid Group Header Section にバインドされた DataTemplate があります。DataTemplate には、TextBlock の 1 つから 4 つの TextBlock があり、Grid Header Column Value が含まれています。ここで、この TextBlock 値を 3 つに分割し、この値をコード ビハインドの他の 3 つの TextBlock に割り当てます。出来ますか?
<DataTemplate x:Key="descriptionHeader">
<!--<dxg:GroupGridRowContent>
<TextBlock Background="Yellow" Text="{Binding DisplayText}" ></TextBlock>
</dxg:GroupGridRowContent>-->
<Border BorderBrush="Black" BorderThickness="1" Width="1300">
<StackPanel Orientation="Vertical" Margin="2">
<TextBlock Name="txtdescription" Text="{Binding DisplayText}" Width="200" HorizontalAlignment="Left" ></TextBlock>
<StackPanel Orientation="Horizontal" Margin="2" Height="80">
<Image Source=".\Images\description_img.png" Stretch="None" FlowDirection="LeftToRight" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="1"/>
<StackPanel Orientation="Vertical" Margin="2">
<TextBlock Name="txtdesc1" Margin="2" FlowDirection="LeftToRight" Text="{Binding Path=GlassType,RelativeSource={RelativeSource Self}}" TextWrapping="Wrap" />
<TextBlock Name="txtdesc2" Margin="2" FlowDirection="LeftToRight" Text="{Binding Path=(dxg:RowData.RowData).GroupSummaryData[3].Text, RelativeSource={RelativeSource Self}}" TextWrapping="Wrap" />
<TextBlock Name="txtdesc3" Margin="2" FlowDirection="LeftToRight" Text="{Binding Path=(dxg:RowData.RowData).GroupSummaryData[4].Text, RelativeSource={RelativeSource Self}}" TextWrapping="Wrap" />
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
</DataTemplate>
</Window.Resources>
<dxg:GridControl Name="grdInfill" Height="700" VerticalAlignment="Top" >
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="GlassType" AllowEditing="False" />
<dxg:GridColumn FieldName="GlassDescription" GroupValueTemplate="{StaticResource descriptionHeader}">
<!--GroupValueTemplate="{StaticResource descriptionHeader}"-->
<!--Header="GlassDescription" DisplayMemberBinding="{Binding Path=RowData.Row.GlassDescription, Mode=TwoWay}"-->
</dxg:GridColumn>
<dxg:GridColumn FieldName="GlassType" AllowEditing="False" />
<dxg:GridColumn Name="qty" Header="Quantity" AllowEditing="False" DisplayMemberBinding="{Binding Path=RowData.Row.Quantity, Mode=TwoWay}" /> <!--FieldName="Quantity"-->
<dxg:GridColumn FieldName="Width" AllowEditing="False" Header="Length"/>
<dxg:GridColumn FieldName="Height" AllowEditing="False"/>
<dxg:GridColumn FieldName="Elevation" AllowEditing="False"/>
<dxg:GridColumn FieldName="Mark" AllowEditing="False"/>
<dxg:GridColumn FieldName="GlassTag" AllowEditing="False"/>
<dxg:GridColumn FieldName="WallLocation" AllowEditing="False"/>
<dxg:GridColumn FieldName="SquareFoot" AllowEditing="False"/>
<dxg:GridColumn FieldName="Weight" AllowEditing="False"/>
<dxg:GridColumn FieldName="UnitCost" AllowEditing="False"/>
<dxg:GridColumn FieldName="TotalCost" AllowEditing="False"/>
<dxg:GridColumn FieldName="FuelSurcharge" AllowEditing="False"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView ShowTotalSummary="True" AutoWidth="True" DetailHeaderContent="True" ShowIndicator="False" ShowGroupPanel="False"><!--GroupRowTemplate="{StaticResource descriptionHeader}"-->
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
protected void GetAllInfills()
{
List<Infill> infillList = new List<Infill>();
infillList=BLL.GetAllInfills();
if (infillList != null)
{
grdInfill.ItemsSource = infillList;
grdInfill.GroupBy(grdInfill.Columns["GlassType"], ColumnSortOrder.Ascending);
grdInfill.GroupBy(grdInfill.Columns["GlassDescription"], ColumnSortOrder.Ascending);
grdInfill.AutoExpandAllGroups = true;
}
}
上記の marukup からtxtdescription
、グリッド列のグループ ヘッダー セクションの値を含む TextBlock コントロール、つまり ' 'にアクセスしたいのです'GlassDescription'
が、この値 int を 3 つの値、つまり txtdescription.Split('*') に分割し、値を他の 3 つのテキストブロックに割り当てたいと考えています。つまり、コード ビハインドから DataTemplate にある txtdesc1、txtdesc2、txtdesc3 です。