【发布时间】:2012-04-20 13:26:54
【问题描述】:
我有一个 WPF 数据网格,有 2 列表示参数名称和值。
我的要求只是特定参数名的一个值(单元格内容)应该是可编辑的,并且整个 Datagrid 内容应该是只读的......
我有一个保存按钮来保存值。
我几天来一直在研究一个合适的解决方案,在许多情况下这是一个常见的要求,但我还没有找到......
请任何解决方案或想法将不胜感激..
这里是 XAML 和 cs:当 Datagrid 加载时,我只希望 PM2 单元格值处于编辑模式,所有其他 datagrid 内容应该是灰色的或不可编辑的..
<Grid>
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False"
Margin="20,57,18,19" Name="dataGrid1"
Height="250" SelectionUnit="Cell" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding ParameterName}" Width="100" Header="Parameter Name" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding Value}" Width="100" Header="Value" />
</DataGrid.Columns>
</DataGrid>
</Grid>
还有我的 CS 代码
public partial class dgSF : Window
{
ObservableCollection<ParameterSet> pmset;
public dgSF()
{
InitializeComponent();
pmset = new ObservableCollection<ParameterSet>();
pmset.Add(new ParameterSet() { ParameterName = "PM1", Value = 10 });
pmset.Add(new ParameterSet() { ParameterName = "PM2", Value = 50 });
pmset.Add(new ParameterSet() { ParameterName = "PM3", Value = 70 });
pmset.Add(new ParameterSet() { ParameterName = "PM4", Value = 80 });
pmset.Add(new ParameterSet() { ParameterName = "PM5", Value = 100 });
dataGrid1.ItemsSource = pmset;
}
}
public class ParameterSet
{
public string ParameterName { get; set; }
public int Value { get; set; }
}
非常感谢,
阿努
【问题讨论】:
-
那么,您希望能够编辑 ParameterName 或 Value 吗?
-
我只想编辑值。
-
当 Datagrid 从后面的代码或 XAML 文件加载时,我想在编辑模式下获取 PM2 单元格值
-
我知道这是一个老问题,但为什么你不在 Value 的列定义中使用 IsReadOnly="false" 呢?
标签: wpf xaml wpfdatagrid