با عرض سلام،ادب و احترام
من می خواهم با لود شدن فرمم(با توجه به تصویر ضمیمه)،سطری از دیتاگرید که کدپرواز آن 20 است،سبز شود.
چطور می توانم این کار را انجام دهم؟
سپاسگزارم
سلام
برای این کار می بایست از DataTrigger استفاده کنید، در ادامه برای شما یک مثال قرار میدهم تا موضوع را کامل شرح دهم :
CSharp Code :
public partial class Window2 : Window { public Window2() { InitializeComponent(); GrdList.ItemsSource = new List<Person>() { new Person(){Code = 7 , Name = "رشت"} , new Person(){Code = 20 , Name = "رشت"} , new Person(){Code = 25 , Name = "کیش"} , new Person(){Code = 27 , Name = "کرمان"} , new Person(){Code = 20 , Name = "مشهد"} , new Person(){Code = 29 , Name = "قشم"} , }; } } internal class Person { public int Code { get; set; } public string Name { get; set; } }
XAML :
<Window x:Class="WpfApplication10.Window2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window2" Height="300" Width="300" FlowDirection="RightToLeft" WindowStartupLocation="CenterScreen"> <Grid> <DataGrid Name="GrdList" AutoGenerateColumns="False"> <DataGrid.Resources> <Style TargetType="DataGridRow"> <Setter Property="Background" Value="Black"/> <Setter Property="Foreground" Value="White"/> <Style.Triggers> <DataTrigger Binding="{Binding Code}" Value="20"> <Setter Property="Background" Value="GreenYellow"/> <Setter Property="Foreground" Value="Black"/> </DataTrigger> </Style.Triggers> </Style> </DataGrid.Resources> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Code}" Width="*" Header="کد پرواز"></DataGridTextColumn> <DataGridTextColumn Binding="{Binding Name}" Width="*" Header="مبدا"></DataGridTextColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window>
نتیجه کار :
بابت پاسخگویی تان سپاسگزارم
ولی من سوالم را بد مطرح کردم و منظور اصلی خودم را نرساندم.
سوالم را این گونه می پرسم:من می خواهم با زدن یک دکمه،سطری از دیتاگرید که کدپرواز آن 20 است،سبز شود.چگونه این کار را انجام دهم؟
سپاسگزارم
میتونید از این کد استفاده کنید. احتمالا براتون مفید باشه:
e.Column.CellStyle = new Style(typeof(DataGridCell)); e.Column.CellStyle.Setters.Add(new Setter(DataGridCell.BackgroundProperty, new SolidColorBrush(Colors.LightBlue)));
بابت پاسخ تون مممنونم
ولی column رو نمیشناسه و با زیگزاگ قرمز نشون می ده!!!
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)