как (определить и вызвать события для дочерней сетки данных) в сетке данных - PullRequest
1 голос
/ 14 мая 2010

мне нужно определить события для сетки данных с другой сеткой данных (основная дочерняя сетка) теперь мне нужно определить события для дочерней сетки и вызывать эти события, когда я щелкаю по дочерней сетке данных

Я определил события для дочерней сетки данных на странице xaml. но эти события или не быть уволенным. как я должен идти вперед? RowDetailsVisibilityChanged = "dgrdRowDetail_RowDetailsVisibilityChanged"

это мой код Xaml

<sdk:DataGrid MinHeight="100" x:Name="dgCounty" AutoGenerateColumns="False" VerticalAlignment="Top" Grid.Row="1"   IsReadOnly="True"  Margin="5,5,5,0" RowDetailsVisibilityChanged="dgCounty_RowDetailsVisibilityChanged"  SelectionMode="Extended"   RowDetailsVisibilityMode="VisibleWhenSelected">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTemplateColumn>
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button x:Name="myButton" Width="24" Height="24" Click="Details_Click">
                                <Image  x:Name="img" Source="Images/detail.JPG" Stretch="None"/>
                            </Button>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
                <sdk:DataGridTemplateColumn  Header="ID">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate >
                                <sdk:Label Content="{Binding EmployeeID}" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
                <sdk:DataGridTemplateColumn  Header="Name">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate >
                            <sdk:Label Content="{Binding EmployeeFName}" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
                <sdk:DataGridTemplateColumn  Header="MailID">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate >
                            <sdk:Label Content="{Binding EmployeeMailID}" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
            </sdk:DataGrid.Columns>
            <sdk:DataGrid.RowDetailsTemplate>
                <DataTemplate>
                    <sdk:DataGrid x:Name="dgrdRowDetail" Width="400" HeadersVisibility ="None"  AutoGenerateColumns="False" HorizontalAlignment="Center" IsReadOnly="True" RowDetailsVisibilityChanged="dgrdRowDetail_RowDetailsVisibilityChanged"  SelectionMode="Extended"   RowDetailsVisibilityMode="VisibleWhenSelected">
                        <sdk:DataGrid.Columns>
                            <sdk:DataGridTextColumn  Binding="{Binding CompanyName}"/>
                            <sdk:DataGridTextColumn   Binding="{Binding CompanyID}"/>
                            <sdk:DataGridTemplateColumn  Header="Score">
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate >
                                        <StackPanel Loaded ="StackPanel_Loaded" Orientation="Horizontal" Background="Transparent">
                                            <TextBlock Text="{Binding Score}" TextWrapping="NoWrap" HorizontalAlignment="Center" Foreground="Blue"></TextBlock>
                                                                                           <Image x:Name="imgScore" Source ="{Binding Score}" Width="20" Height="20" Stretch ="Fill"/>

                                        </StackPanel>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>
                        </sdk:DataGrid.Columns>


                    </sdk:DataGrid>


                </DataTemplate>
            </sdk:DataGrid.RowDetailsTemplate>
        </sdk:DataGrid>

private void dgrdRowDetail_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)

           {

           }

знает ли кто-нибудь, как определять и вызывать события дочерней сетки данных. любая помощь будет великолепна, если вы ищете решение.

спасибо заранее

принц

1 Ответ

0 голосов
/ 14 мая 2010

Soution: определить глобально DataGrid dgrdRowDetail;

в родительском событии события мы можем откорректировать дочернюю сетку данных и затем определить событие для дочерней сетки данных.

   private void dgCounty_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)
            {            
           dgrdRowDetail = (DataGrid)e.DetailsElement.FindName("dgrdRowDetail");
             dgrdRowDetail.RowDetailsVisibilityChanged+=new EventHandler<DataGridRowDetailsEventArgs>(dgrdRowDetail_RowDetailsVisibilityChanged);
    }

как только вы получите свой dgrdRowDetail, который является дочерним элементом управления, yoy может выполнить все действия с ним, такие как связывание, события и все такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...