在我的程序中,除了包含一個DataGird的主窗口之外,我還有兩個類。讓我們先從第一類:
MyClass.cs:
public class MyClass
{
public bool IsOrange { get; set; }
public string Name { get; set; }
}
我只有兩個屬性,IsOrange
指定該行是否應該橙色。 ((不關心其他屬性))
現在視圖模型類只包含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" });
}
}
在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>
終於在MainWindow.xaml.cs:
public partial class MainWindow : Window
{
MyClassViewModel VM = new MyClassViewModel();
public MainWindow()
{
InitializeComponent();
DataContext = VM;
}
}
,這是結果:
你可以給我您的電子郵件發送給您的應用程序。
好運:)
IsOrange屬性位於哪裏,它直接位於窗口上下文? – MoHaKa
我有一個viewmodel SomethingWhichCanBeOrangeViewModel具有布爾IsRange屬性。我的網格有它的ItemsSource設置爲ObservableCollection。 –
user1514042
好的,所以你確定你的財產可以在你的DataGrid中訪問。 – MoHaKa