دسته بندی ها
18:57 1401/01/23

Conditional Formatting و دستور Select Case برای نمایش مقادیر در WPF

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : سی شارپ WPF Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3416
هوش مصنوعی

پاسخ هوش مصنوعی

در 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` به کلمات دلخواه تبدیل خواهند شد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : pedram_khan 22:27 1401/01/23

آموزش استفاده از 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 چجوری بایند کردید.

ویرایش شده در سه شنبه 23 فروردین 1401 ساعت 22:27:35
به این پاسخ امتیاز بدهید    1
امتیاز: 277 رتبه: 6
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود