我需要展开/折叠为RowDetailsTemplate [英] I need the Expand / Collapse for RowDetailsTemplate

查看:336
本文介绍了我需要展开/折叠为RowDetailsTemplate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有wpfTolkit datagrid。他有DataGrid.RowDetailsTemplate当我点击它将会展开/折叠,我需要做按钮。



如何做到这一点我找不到你想要的事件

 < Custom:DataGrid RowDetailsVisibilityMode =VisibleWhenSelectedSelectionMode =ExtendedCanUserAddRows =FalseCanUserDeleteRows =FalseCanUserResizeRows =False CanUserSortColumns =False> 
< Custom:DataGrid.RowDetailsTemplate>
< DataTemplate>
< Custom:DataGrid>
< Custom:DataGrid.Columns>
< Custom:DataGridTextColumn Binding ={Binding idClient,Mode = Default}Header =ИдIsReadOnly =True/>
< Custom:DataGridTextColumn Binding ={Binding name_client,Mode = Default}Header =ИмяIsReadOnly =True/>
< / Custom:DataGrid.Columns>
< / Custom:DataGrid>
< / DataTemplate>
< / Custom:DataGrid.RowDetailsTemplate>
< Custom:DataGrid.Columns>
< Custom:DataGridTemplateColumn>
< Custom:DataGridTemplateColumn.CellTemplate>
< DataTemplate>
< Expander IsExpanded =True/>
< / DataTemplate>
< / Custom:DataGridTemplateColumn.CellTemplate>
< / Custom:DataGridTemplateColumn>
< Custom:DataGridTextColumn Binding ={Binding idPartner,Mode = Default}Header =ИдIsReadOnly =True/>
< Custom:DataGridTextColumn Binding ={Binding name_partner,Mode = Default}Header =ИмяIsReadOnly =True/>
< / Custom:DataGrid.Columns>
< / Custom:DataGrid>


解决方案

检查...


添加WPF DataGrid的按钮




XAML:

 < DataGrid Name =dg1AutoGenerateColumns =FalseSelectionMode =SingleCanUserAddRows =falseCanUserDeleteRows =FalseSelectionUnit =FullRow> 
< DataGrid.CellStyle>
< Style TargetType =DataGridCell>
< Setter Property =BorderThicknessValue =0/>
< / Style>
< /DataGrid.CellStyle>

< DataGrid.RowHeaderTemplate>
< DataTemplate>
< Expander Expanded =Expander_ExpandedCollapsed =Expander_Collapsed>

< / Expander>
< / DataTemplate>
< /DataGrid.RowHeaderTemplate>

< DataGrid.Columns>
< DataGridTextColumn Header =NameIsReadOnly =TrueWidth =100Binding ={Binding Name}/>
< DataGridTextColumn Header =TitleIsReadOnly =TrueWidth =100Binding ={Binding Title}/>
< DataGridTextColumn Header =JobIsReadOnly =TrueWidth =100Binding ={Binding Job}/>
< /DataGrid.Columns>

< DataGrid.RowDetailsTemplate>
< DataTemplate>
< TextBlock Text ={Binding Isi,Converter = {StaticResource ResourceKey = isiTextConverter}}Margin =10,5,0,0/>
< / DataTemplate>
< /DataGrid.RowDetailsTemplate>
< / DataGrid>

MainWindow.xaml.cs

  private void Expander_Expanded(object sender,RoutedEventArgs e)
{
for(var vis = sender as Visual; vis!= null; vis = VisualTreeHelper.GetParent(vis)as Visual)
if(vis为DataGridRow)
{
var row =(DataGridRow)vis;
row.DetailsVisibility = row.DetailsVisibility == Visibility.Visible? Visibility.Collapsed:Visibility.Visible;
break;



private void Expander_Collapsed(object sender,RoutedEventArgs e)
{
for(var vis = sender as Visual; vis!= null ; vis = VisualTreeHelper.GetParent(vis)as Visual)
if(vis为DataGridRow)
{
var row =(DataGridRow)vis;
row.DetailsVisibility = row.DetailsVisibility == Visibility.Visible? Visibility.Collapsed:Visibility.Visible;
break;
}
}

输出




I have wpfTolkit datagrid. He has DataGrid.RowDetailsTemplate I need to do the button when clicked it will Expand / Collapse.

How to do this I could not find the event you want

<Custom:DataGrid RowDetailsVisibilityMode="VisibleWhenSelected" SelectionMode="Extended" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" CanUserSortColumns="False">
    <Custom:DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <Custom:DataGrid>
                <Custom:DataGrid.Columns>
                    <Custom:DataGridTextColumn Binding="{Binding idClient, Mode=Default}" Header="Ид" IsReadOnly="True"/>
                    <Custom:DataGridTextColumn Binding="{Binding name_client, Mode=Default}"  Header="Имя" IsReadOnly="True"/>
                </Custom:DataGrid.Columns>
            </Custom:DataGrid>
        </DataTemplate>
    </Custom:DataGrid.RowDetailsTemplate>
    <Custom:DataGrid.Columns>
        <Custom:DataGridTemplateColumn>
            <Custom:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Expander IsExpanded="True"/>
                </DataTemplate>
            </Custom:DataGridTemplateColumn.CellTemplate>
        </Custom:DataGridTemplateColumn>
        <Custom:DataGridTextColumn Binding="{Binding idPartner, Mode=Default}" Header="Ид" IsReadOnly="True"/>
        <Custom:DataGridTextColumn Binding="{Binding name_partner, Mode=Default}"  Header="Имя" IsReadOnly="True"/>
    </Custom:DataGrid.Columns>
</Custom:DataGrid>

解决方案

Check this ...

Adding a Button to a WPF DataGrid

OR

XAML :

<DataGrid Name="dg1" AutoGenerateColumns="False" SelectionMode="Single" CanUserAddRows="false" CanUserDeleteRows="False" SelectionUnit="FullRow" >
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
    </DataGrid.CellStyle>

    <DataGrid.RowHeaderTemplate>
        <DataTemplate>
            <Expander Expanded="Expander_Expanded" Collapsed="Expander_Collapsed">

            </Expander>
        </DataTemplate>
    </DataGrid.RowHeaderTemplate>

    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" IsReadOnly="True" Width="100" Binding="{Binding Name}" />
        <DataGridTextColumn Header="Title" IsReadOnly="True" Width="100" Binding="{Binding Title}" />
        <DataGridTextColumn Header="Job" IsReadOnly="True" Width="100" Binding="{Binding Job}" />
    </DataGrid.Columns>

    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Isi, Converter={StaticResource ResourceKey=isiTextConverter}}" Margin="10,5,0,0" />
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>

MainWindow.xaml.cs

private void Expander_Expanded(object sender, RoutedEventArgs e)
{
    for (var vis = sender as Visual; vis != null; vis = VisualTreeHelper.GetParent(vis) as Visual)
    if (vis is DataGridRow)
    {
        var row = (DataGridRow)vis;
        row.DetailsVisibility = row.DetailsVisibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
        break;
    }
}

private void Expander_Collapsed(object sender, RoutedEventArgs e)
{
    for (var vis = sender as Visual; vis != null; vis = VisualTreeHelper.GetParent(vis) as Visual)
        if (vis is DataGridRow)
        {
            var row = (DataGridRow)vis;
            row.DetailsVisibility = row.DetailsVisibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
            break;
        }
}

Output

这篇关于我需要展开/折叠为RowDetailsTemplate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆