Trong chương trình của tôi, tôi có hai lớp ngoài cửa sổ chính chỉ chứa một DataGird. Hãy bắt đầu với lớp học đầu tiên:
MyClass.cs:
public class MyClass
{
public bool IsOrange { get; set; }
public string Name { get; set; }
}
Tôi chỉ có hai thuộc tính, IsOrange
xác định xem hàng nên cam. ((Không quan tâm đến tài sản khác.))
Bây giờ lớp mô hình chế độ xem chỉ chứa bộ sưu tập MyClass.
MyClassViewModel.cs:
public class MyClassViewModel
{
public ObservableCollection<MyClass> con { get; set; }
public MyClassViewModel()
{
con = new ObservableCollection<MyClass>();
con.Add(new MyClass { IsOrange = true, Name = "Aa" });
con.Add(new MyClass { IsOrange = true, Name = "Bb" });
con.Add(new MyClass { IsOrange = false, Name = "Cc" });
con.Add(new MyClass { IsOrange = false, Name = "Dd" });
con.Add(new MyClass { IsOrange = false, Name = "Ee" });
con.Add(new MyClass { IsOrange = true, Name = "Ff" });
con.Add(new MyClass { IsOrange = true, Name = "Gg" });
con.Add(new MyClass { IsOrange = false, Name = "Hh" });
}
}
Trong MainWindow.xaml:
<Grid>
<DataGrid Margin="10" ItemsSource="{Binding Path=con}" >
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsOrange}" Value="true">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
</Grid>
cuối cùng trong MainWindow.xaml.cs:
public partial class MainWindow : Window
{
MyClassViewModel VM = new MyClassViewModel();
public MainWindow()
{
InitializeComponent();
DataContext = VM;
}
}
và đây là kết quả:
bạn có thể gửi cho tôi email của bạn để gửi cho bạn ứng dụng.
Chúc may mắn :)
Vị trí thuộc tính IsOrange, nằm ngay trên cửa sổ ngữ cảnh ?? – MoHaKa
Tôi có một chế độ xem mô hình SomethingWhichCanBeOrangeViewModel có thuộc tính IsRange boolean. Lưới của tôi có ItemsSource được đặt thành ObservableCollection. –
user1514042
Được rồi, vì vậy bạn chắc chắn rằng tài sản của bạn có thể truy cập trong DataGrid của bạn. – MoHaKa