استفاده از دیتا گرید تو در تو در WPF
باسلام خدمت دوستان
قصد دارم دیتا گرید تو در تو درست کنم
مثلا لیست کشورهارو تو یه دیتا گرید داریم
وقتی روی یه ردیف سلکت کردیم یه دیتاگرید زیر همون ردیف باز بشه و لیست استان های اون کشور رو بیاره
و وقتی روی استانی سلکت کردیم لیست شهر های اون استان زیرش بیاد
الان من میخوام تو پروژه خودم اینکار رو بکنم
ولی با منطقه و محدوده و محله
<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;
}
برای هر سه موارد منطقه و محدود و محل فرم های جداگانه و دیتاگرید های جدا دارم میخوام اگه بشه مثل درختواره زیر هم هم بیان
الان باید چیکار کنم
دوستان کسی راه کاروپیشنهادی ندارید؟
بنظرم بهتره از کمبوباکس در سلولهای DataGrid در Wpf استفاده کنید. چون دیتاگرید تو در تو زیاد منطقی نیست.
مثلا لیست استانها رو دارید در یک جدول. یک ستون به نام شهرها ایجاد کنید که محتویاتش یک کمبوباکس هست شامل شهرهای اون استان. پیاده سازی این مکانیزم خیلی ساده تره تا ۲ تا datagrid تو درتو
توی گوگل این سرچ رو کنید
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول