【发布时间】:2016-05-18 14:17:03
【问题描述】:
Xaml:
<DataGrid
Name="dgIssuedItemsBatchWise"
AutoGenerateColumns="False"
CanUserAddRows="False"
Loaded="dgIssuedItemsBatchWise_Loaded"
LoadingRow="dgIssuedItemsBatchWise_LoadingRow"
LoadingRowDetails="dgIssuedItemsBatchWise_LoadingRowDetails"
>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
</Style>
</DataGrid.CellStyle>
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Expander
Expanded="Expander_Expanded"
Collapsed="Expander_Collapsed">
</Expander>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.Columns>
<DataGridCheckBoxColumn
Width="100"
Binding="{Binding IsIndentIssue,UpdateSourceTrigger=PropertyChanged}"
>
<DataGridCheckBoxColumn.Header >
<TextBlock
FontWeight="Bold"
Text="Is Selected"
/>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>
<!--<DataGridCheckBoxColumn Width="100" Header="Is Selected" Binding="{Binding IsIndentIssue}" />-->
<DataGridTextColumn
Width="150"
IsReadOnly="True"
Header="Item Name"
FontWeight="Bold"
Binding="{Binding ItemName}"
/>
<DataGridTextColumn
Width="100"
IsReadOnly="True"
Header="Item Code"
FontWeight="Bold"
Binding="{Binding ItemCode}"
/>
<DataGridTextColumn
Width="100"
IsReadOnly="True"
x:Name="reqQuantity"
Header="Required Quantity"
FontWeight="Bold"
Binding="{Binding Quantity}" />
<DataGridTextColumn
Width="100"
IsReadOnly="True"
x:Name="issQty"
Header="Issued Quantity"
FontWeight="Bold"
Binding="{Binding IssueQuantity}"
/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<DataGrid Grid.Row="0"
Height="Auto"
Padding="10,10,10,10"
Width="1320"
Grid.ColumnSpan="5"
ItemsSource="{Binding BatchWiseItems,UpdateSourceTrigger=PropertyChanged}"
x:Name="dgIssuedItemsBatchDetails"
AutoGenerateColumns="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
CanUserAddRows="False"
>
<DataGrid.Columns>
<!--<DataGridTextColumn Width="440" >
<DataGridTextColumn.Header>
<CheckBox
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</DataGridTextColumn.Header>
</DataGridTextColumn>-->
<DataGridCheckBoxColumn
Width="100"
Binding="{Binding IsItemIssued,UpdateSourceTrigger=PropertyChanged}">
<DataGridCheckBoxColumn.Header >
<TextBlock
FontWeight="Bold"
Text="Is Issued"
/>
</DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn>
<!--<DataGridCheckBoxColumn Width="100" Header="Is Issued" Binding="{Binding IsIndentIssue}" />-->
<DataGridTextColumn
Binding="{Binding BatchNo}"
Width="440" >
<DataGridTextColumn.Header>
<TextBlock
FontWeight="Bold"
Text="Batch No"
/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
<DataGridTextColumn
Binding="{Binding Quantity}"
Width="440" >
<DataGridTextColumn.Header>
<TextBlock
FontWeight="Bold"
Text="Quantity"
/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<!--<TextBox Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" ></TextBox>-->
</Grid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
我需要根据一些计算更改行颜色。在 GridView 中,我们有 RowDataBound 事件,但在 DataGrid 中有人建议我使用 DataGrid_LoadingRow 事件。我使用该事件,例如
private void dgIssuedItemsBatchWise_LoadingRow(object sender, DataGridRowEventArgs e)
{
DataRowView item = e.Row.Item as DataRowView ;
if (item != null)
{
}
}
但每次我将项目设为空时。有人建议我如何解决该问题或更改 WPF DataGrid 中的行颜色。
【问题讨论】:
-
你的意思是
DaatGrid放在ListView里面吗?如果是这样,那么您应该放置ListViewxaml ind 它的DataTemplate。由于其他人不清楚DataGrid位于ListView的DataTemplate。此外,还有AlternatingRowBackground="Brown"和AlternationCount="2"等属性。 -
不,没有列表视图。我正在使用gridview本身..
-
yes datagrid inside datagrid..