ورود

View Full Version : سوال: دسترسی به تکست بلاک داخل datatemplate



sajad.app
شنبه 30 فروردین 1399, 23:25 عصر
<DataGrid.RowDetailsTemplate >


<DataTemplate >
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontSize="12" Margin="0,5,0,0" Text=" پرداخت هزینه: " />
<TextBlock x:Name="Onvan_hazine_for_Update" FontSize="12" Margin="0,5,5,0" Foreground="Green" Text="{Binding عنوان}" />
<TextBlock FontSize="12" Margin="0,5,0,0" Text=" به مبلغ: " />
<TextBlock x:Name="mablagh_hazine_for_Update" FontSize="12" Margin="0,5,5,0" Foreground="Green" Text="{Binding مبلغ}" />
<TextBlock FontSize="12" Margin="0,5,0,0" Text=" در تاریخ: "/>
<TextBlock x:Name="tarikh_hazine_for_Update" FontSize="12" Margin="0,5,5,0" Foreground="Green" Text="{Binding تاریخ}" />
<TextBlock x:Name="Cod_Hazine_For_Delete_OR_Update" FontSize="12" Margin="0,5,0,0" Foreground="Green" Text="{Binding کد}" Visibility="Hidden" />

<Button x:Name="btn_Delete_Hazine" Height="25" Click="btn_Delete_Hazine_Click" >
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Delete" RenderTransformOrigin="1.444,0.556" />
</StackPanel>
</Button>
<Button x:Name="btn_Update_Hazine" Height="25" Margin="30,0,0,0" Click="btn_Update_Hazine_Click" >
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Update" RenderTransformOrigin="1.444,0.556" />
</StackPanel>
</Button>

</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate




سلام دوستان من این کد نوشتم
حالا میخوام از قسمت کد نویسی سی شارپ به تکست بلاک داخل datatemplate دسترسی داشته باشم
امکانش هست؟

barnamenevisjavan
دوشنبه 01 اردیبهشت 1399, 16:44 عصر
<DataGrid.RowDetailsTemplate >


<DataTemplate >
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontSize="12" Margin="0,5,0,0" Text=" پرداخت هزینه: " />
<TextBlock x:Name="Onvan_hazine_for_Update" FontSize="12" Margin="0,5,5,0" Foreground="Green" Text="{Binding عنوان}" />
<TextBlock FontSize="12" Margin="0,5,0,0" Text=" به مبلغ: " />
<TextBlock x:Name="mablagh_hazine_for_Update" FontSize="12" Margin="0,5,5,0" Foreground="Green" Text="{Binding مبلغ}" />
<TextBlock FontSize="12" Margin="0,5,0,0" Text=" در تاریخ: "/>
<TextBlock x:Name="tarikh_hazine_for_Update" FontSize="12" Margin="0,5,5,0" Foreground="Green" Text="{Binding تاریخ}" />
<TextBlock x:Name="Cod_Hazine_For_Delete_OR_Update" FontSize="12" Margin="0,5,0,0" Foreground="Green" Text="{Binding کد}" Visibility="Hidden" />

<Button x:Name="btn_Delete_Hazine" Height="25" Click="btn_Delete_Hazine_Click" >
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Delete" RenderTransformOrigin="1.444,0.556" />
</StackPanel>
</Button>
<Button x:Name="btn_Update_Hazine" Height="25" Margin="30,0,0,0" Click="btn_Update_Hazine_Click" >
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Update" RenderTransformOrigin="1.444,0.556" />
</StackPanel>
</Button>

</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate




سلام دوستان من این کد نوشتم
حالا میخوام از قسمت کد نویسی سی شارپ به تکست بلاک داخل datatemplate دسترسی داشته باشم
امکانش هست؟
سلام بهترین کار استفاده از Binding هستش در هر صورت شاید این کد کارتون راه بندازه

StackPanel temp = datagrid.SelectedItem as StackPanel;
var textBlock = temp.Children[0] as TextBlock;

arman_Delta2002
جمعه 05 اردیبهشت 1399, 08:39 صبح
سلام دوست قدیمی
فکر کنم طرز تفکر در پیاده سازی شما یکم اشتباه داره و هنوز مثل من مانند ویندوز فرم باهاش رفتار میکنیم.
چون تمام این اشیا به ازای هر رکورد تکرار میشه پس بهتره که به کلاس مدل ات یک پروپرتی اضافه کنی و اون رو بایند کنی به اون پروپرتی مدنظرت و مقدار اون ردیف رو هم داده باشی بهش همون رفتار رو هر رکورد برات انجام میده.
من هم همین مشکل رو با گرید دیو دارم و پیچیده تر از این هم بود ولی با پروپرتی اضافه و بایند کردن درست شد. فقط مشکل اینجاست اگه من 1 میلیون رکورد داشته باشم و بعد خوندنش از پایگاه داده بخوام تک تک رکورد ها رو یک پروپرتی خواص مقدار بدم خودش کلی زمان سیستم رو اشغال میکنه راحی وجود داره این مشکل حل بشه؟!