使用togglebutton for RowDetailsTemplate

时间:2018-02-15 22:41:49

标签: wpf xaml

说我想在我的WPF中使用RowDetailsTemplate。

 @using (Html.BeginForm())
 {
        foreach (var item in Model)
        {
           <input type="radio" name="perId" value="@item.specialId"><br /><br />
        }
        <input type="submit" ur value="send" /> 
}

在后面的代码中,我使用event来改变按钮外观。

 <Grid x:Name="LayoutRoot" Background="White">
    <data:DataGrid x:Name="grdVwDetails" AutoGenerateColumns="False" RowDetailsVisibilityMode="Collapsed">
        <data:DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <data:DataGrid HeadersVisibility="None" ItemsSource="{Binding Path= Project}" AutoGenerateColumns="True">
                </data:DataGrid>
            </DataTemplate>
        </data:DataGrid.RowDetailsTemplate>
        <data:DataGrid.Columns>
            <data:DataGridTemplateColumn>
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="+" Click="HandleExpandCollapseForRow"></Button>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>
            </data:DataGridTemplateColumn>
            <data:DataGridTextColumn Header="EmployeeID" Binding="{Binding EmpID}"></data:DataGridTextColumn>
            <data:DataGridTextColumn Header="Name" Binding="{Binding Name}"></data:DataGridTextColumn>
            <data:DataGridTextColumn Header="Address" Binding="{Binding Address}"></data:DataGridTextColumn>
        </data:DataGrid.Columns>
    </data:DataGrid>
</Grid>

看起来很有效。我的问题是我不想使用+/-作为按钮。我想使用不同的图像进行展开/折叠。  它应该在xaml而不是代码背后完成。

整个项目可以在http://www.a2zmenu.com/Blogs/Silverlight/Collapse-RowDetailstemplate-on-clicking-again.aspx

找到

这适用于Silverlight,我将它用于WPF。

1 个答案:

答案 0 :(得分:0)

您可以使用自定义模板Button替换DataTemplate中的ToggleButton

<ToggleButton Width="50" Height="50">
    <ToggleButton.Template>
        <ControlTemplate TargetType="ToggleButton">
            <Image x:Name="img" Source="plus.png" />
            <ControlTemplate.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter TargetName="img" Property="Source" Value="minus.png" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </ToggleButton.Template>
</ToggleButton>