• 1398/11/12

دیتا گرید تو در تو :

باسلام خدمت دوستان 

قصد دارم دیتا گرید تو در تو درست کنم 

مثلا لیست کشورهارو تو یه دیتا گرید داریم 

وقتی روی یه ردیف سلکت کردیم یه دیتاگرید زیر همون ردیف باز بشه و لیست استان های اون کشور رو بیاره 

و وقتی روی استانی سلکت کردیم لیست شهر های اون استان زیرش بیاد 

 

الان من میخوام تو پروژه خودم اینکار رو بکنم 

ولی با منطقه و محدوده و محله

        <DockPanel  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,73,0,100">
            <DataGrid x:Name="dgMantaghe" Background="Azure" FlowDirection="RightToLeft"  AutoGenerateColumns="False" IsReadOnly="True"  Margin="0,50,0,0" CanUserAddRows="False" EnableRowVirtualization="true">

                <DataGrid.Columns>
                    <DataGridTextColumn x:Name="MantagheIDColumn" Header="کد منطقه" Binding="{Binding MantagheID}" />
                    <DataGridTextColumn x:Name="MantagheColumn" Header="منطقه" Binding="{Binding Mantaghe}" />
                    <DataGridTextColumn x:Name="MantagheTozihColumn" Header="توضیحات منطقه" Binding="{Binding MantagheTozih}" />
                    <DataGridTextColumn x:Name="MantagheWebColumn" Header="وب سایت" Binding="{Binding MantagheWeb}" />
                    <DataGridTextColumn x:Name="MantagheEmailColumn" Header="ایمیل" Binding="{Binding MantagheEmail}" />
                    <DataGridTextColumn x:Name="MantagheTelColumn" Header="تلفن های تماس" Binding="{Binding MantagheTel}" />
                    <DataGridTextColumn x:Name="MantagheFaxColumn" Header="فکس" Binding="{Binding MantagheFax}" />
                    <DataGridTextColumn x:Name="MantagheAddressColumn" Header="آدرس" Binding="{Binding MantagheAddress}" />
                    <DataGridTextColumn x:Name="UserFamiliColumn" Header="کاربر ثبت کننده" Binding="{Binding UserFamili}" />
                </DataGrid.Columns>
                <DataGrid.RowDetailsTemplate>
                    <DataTemplate>
                        <DataGrid x:Name="dgMahdode" Background="Azure" FlowDirection="RightToLeft"  AutoGenerateColumns="False" IsReadOnly="True"  Margin="0,50,0,0" CanUserAddRows="False" EnableRowVirtualization="true">
                            <DataGrid.Columns>
                                <DataGridTextColumn x:Name="MahdodeIDColumn" Header="کد محدوده" Binding="{Binding MahdodeID}" />
                                <DataGridTextColumn x:Name="MahdodeColumn" Header="محدوده" Binding="{Binding Mahdode}" />
                            </DataGrid.Columns>
                            <DataGrid.RowDetailsTemplate>
                                <DataTemplate>
                                    <DataGrid x:Name="dgMahal" Background="Azure" FlowDirection="RightToLeft"  AutoGenerateColumns="False" IsReadOnly="True"  Margin="0,50,0,0" CanUserAddRows="False" EnableRowVirtualization="true">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn x:Name="MahalIDColumn" Header="کد محل" Binding="{Binding MahalID}" />
                                            <DataGridTextColumn x:Name="MahalColumn" Header="محل" Binding="{Binding Mahal}" />
                                        </DataGrid.Columns>
                                    </DataGrid>
                                </DataTemplate>
                            </DataGrid.RowDetailsTemplate>
                        </DataGrid>
                    </DataTemplate>
                </DataGrid.RowDetailsTemplate>
            </DataGrid>
        </DockPanel>

 

حالا خود دیتا گرید درست وقتی روی یه ردیف کلیک میکنم دیتاگرید دوم زیرش باز میشه ولی آیتم سورس دیتاگرید دوم رو نمیتونم پور کنم چون اسم دیتاگرید رو تو صفحه xaml.cs نمیشناسه و نمیتونم براش سورس تعریف کنم 

 

سورس دیتاگرید اول رو هم  زیر پرمیکنم

 

        private void ShowInfo(Func<string> SearchString)
        {

                var query = DbDatabase.Database.SqlQuery<ViewMantaghe>("SELECT * FROM ViewMantaghe Where 1=1 " + SearchString());
                var q = query.ToList();
                dgMantaghe.ItemsSource = q;
             
        }

 

برای هر سه موارد منطقه و محدود و محل فرم های جداگانه و دیتاگرید های جدا دارم میخوام اگه بشه مثل درختواره زیر هم هم بیان

الان باید چیکار کنم 

logo-enamadlogo-samandehi