Conditional Formatting و دستور Select Case برای نمایش مقادیر در WPF
من توی یک دیتا گرید یک ستون دارم که مقادیرش از دیتابیس از جدول پر میشه و بین اعداد 0-1-2-3 متغیر هست .
کاری که میخوام انجام بدم اینه که از سمت سی شارپ یا XAML در درون دیتا گرید بگم محتوای هر سلول این ستون رو بررسی کن اگر عدد اون برار هست با 0 به جای عدد صفر کلمه "عادی" رو نمایش بده و به جای 1 "در حال ارسال" و......
مشابه همون کاری که برای ComboBox از طریق DisplayMemberPath و SelectedValuePath انجام میده رو میخوام برای یک TextColumn انجام بدم.
منتها این کدی که نوشتم کار نمیکنه :
XAML:
<DataGrid x:Name="MyDataGrid1" AutoGenerateColumns="False" EnableRowVirtualization="True" Margin="10" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="nUMBERColumn" Binding="{Binding NUMBER}" Header="NUMBER" Width="SizeToHeader"/>
<DataGridTextColumn x:Name="VAZIYATColumn" Binding="{Binding VAZIYAT}" Header="TAMIR" Width="SizeToHeader">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<!--<Setter Property="HorizontalAlignment" Value="Right"/>-->
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=VAZIYAT,Path=Text, UpdateSourceTrigger=PropertyChanged}" Value="0">
<Setter Property="Text" Value="عادی"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=VAZIYAT,Path=Text, UpdateSourceTrigger=PropertyChanged}" Value="1">
<Setter Property="Text" Value="در حال ارسال"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>

پاسخ هوش مصنوعی
در WPF برای استفاده از شرطی کردن مقادیر در دیتا گرید، توصیه می شود که از DataTemplate استفاده کنید. شما می توانید با استفاده از یک Converter برای تبدیل مقادیر عددی به متن دلخواه، در DataGridTextColumn این کار را انجام دهید. در اینجا یک نمونه کد XAML و سی شارپ آورده شده که می تواند به شما کمک کند.
ابتدا یک Converter به نام `StatusConverter` بسازید:
using System;
using System.Globalization;
using System.Windows.Data;
public class StatusConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is int status)
{
switch (status)
{
case 0:
return "عادی";
case 1:
return "در حال ارسال";
case 2:
return "تحویل داده شده";
case 3:
return "لغو شده";
default:
return "نامشخص";
}
}
return "نامشخص";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
سپس، این Converter را در XAML خود ثبت کنید:
حالا می توانید از این Converter در DataGridTextColumn استفاده کنید:
با این کار، مقادیر ستون `VAZIYAT` به کلمات دلخواه تبدیل خواهند شد.
آموزش استفاده از Select Case در Sql Server
چندین راه وجود داره برای این کار. در مجموع شما می تونید چه توی Sql Server و چه توی انتیتی فریم ورک از عبارت Select Case استفاده کنی.
توی دیتابیس یک View ایجاد کن و در این ویو یک فیلد جدید ایجاد کنید به صورت زیر :
SELECT Col1, Col2,
CASE
WHEN Col2 = 1 THEN 'عادی'
WHEN Col2 = 2 THEN 'در حال ارسال'
ELSE 'نامشخص'
END AS Col3
FROM Table;
در کوئری بالا که میتونه یک View در Sql Server باشه فیلد Col3 در واقع همون فیلد Col2 هست که به جای اعداد 1 و 2 و ... یک متن دلخواه درونش نوشتید. از این دستور در خود انتیتی فریم ورک هم میتونید استفاده کنید ولی بستگی داره Data Grid رو در WPF چجوری بایند کردید.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- حذف کامل یک رکورد در جدول ریلیشن شده
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf