【发布时间】:2015-02-16 09:39:06
【问题描述】:
这是我的 Employee 类。
public class Employee
{
public string LastName { get; set; }
public string FirstName { get; set; }
public bool Fire { get; set; }
}
这就是 XAML 的设置方式。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Loaded="EmployeesGridLoaded">
<DataGrid x:Name="gEmployees" HorizontalAlignment="Left" Margin="10,10,0,0"
VerticalAlignment="Top" AlternatingRowBackground="LightBlue" AlternationCount="2" AutoGenerateColumns="False" Grid.Row="0">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Fire" Binding="{Binding Fire}" Width="1*" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" Width="3*" />
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" Width="3*" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
最后是EmployeesGridLoaded方法。
private void EmployeesGridLoaded(object sender, RoutedEventArgs e)
{
List<Employee> Employees = new List<Employee>()
{
new Employee() { Fire = false, LastName = "Silly", FirstName = "Dude" },
new Employee() { Fire = false, LastName = "Mean", FirstName = "Person" },
};
gEmployees.ItemsSource = Employees;
}
}
通过这个网格,我的目标是姓和名列应该是只读的。我也不希望能够添加新行,但我希望 Fire 列是可编辑的,以便我可以选择要解雇的员工。以下是我得到的。
我知道我可以将绑定模式设置为单向,这将使姓氏和名字列不可食用,但这样我仍然会在网格中得到一个额外的空行。你能帮我解决这个问题,以便我可以开始解雇员工吗?
【问题讨论】:
-
附带说明,如果您要立即执行此操作,我会使用“开火!”按钮。而不是一个复选框。除非您要选中多个框,否则请点击对话框底部的“确定”。
-
是的,我将有一个按钮可以解雇所有选中 Fire 列的员工
-
成为一个固执己见的人,并与@VP 保持一致。说,属性不是“已触发”,而动作(如按钮)不是“触发”吗?
-
为什么投了反对票?有什么问题吗?