من توی یک دیتا گرید یک ستون دارم که مقادیرش از دیتابیس از جدول پر میشه و بین اعداد 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>
چندین راه وجود داره برای این کار. در مجموع شما می تونید چه توی 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 چجوری بایند کردید.
تاریخ :
1399/11/25
- ساعت :
11:22:00 AM
- بازدید :
3896
- پاسخ :
2
|
تاریخ :
1403/12/02
- ساعت :
12:09:00 AM
- بازدید :
270
- پاسخ :
1
|
تاریخ :
1398/07/08
- ساعت :
12:21:00 AM
- بازدید :
3049
- پاسخ :
2
|
تاریخ :
1403/11/23
- ساعت :
08:24:00 PM
- بازدید :
191
- پاسخ :
2
|
تاریخ :
1399/11/10
- ساعت :
10:01:00 PM
- بازدید :
7167
- پاسخ :
4
|
تاریخ :
1399/04/09
- ساعت :
08:51:00 PM
- بازدید :
3096
- پاسخ :
1
|
تاریخ :
1399/03/25
- ساعت :
08:58:00 PM
- بازدید :
3829
- پاسخ :
1
|
تاریخ :
1398/10/03
- ساعت :
10:47:00 PM
- بازدید :
5337
- پاسخ :
8
|
تاریخ :
1400/12/18
- ساعت :
10:24:00 AM
- بازدید :
2111
- پاسخ :
1
|
تاریخ :
1401/01/26
- ساعت :
12:14:00 PM
- بازدید :
3002
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
90
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9852
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
38
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
46
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4420
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
202
- پاسخ :
2
|