两个数据网格合并为一个以及发生另一个错误时如何将数据网格设置为可编辑
Two data grid combined as one and how to set the data grid editable when another one error occured
我创建了 2 个数据网格并将它们并排放置。数据网格允许用户编辑,当值范围为“0 > input”或“100 < input”时,将显示错误图标。
但是,当数据网格1发生错误时,用户仍然可以编辑数据网格2。当数据网格1发生错误时,用户无法编辑其他数据网格怎么办?对这种情况有什么建议或对此有适当的解决办法吗?
使用 WPFToolKit 数据网格,因为当前项目版本是 .Net 3.5
目标数据网格视图
WPF DataGrid
有一个 IsReadOnly
属性,您可以将其设置为 True
以确保用户无法编辑您的 DataGrid 的单元格。
你可以将一些布尔值绑定到两个网格的 IsReadOnly
属性,它会改变以防输入(我想也是绑定的)超出范围(你可以设置这个input
setter)
中的一种行为
代码片段:
public class SomeViewModel: INotifyPropertyChanged
{
// INotifyPropertyChanged members
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
// Input property
private string _input;
public string InputGrid1
{
get
{
return _input;
}
set
{
if (value < 0 || value > 100 )
{
IsEditable = true;
}
_input= value;
OnPropertyChanged(new PropertyChangedEventArgs("InputGrid1"));
}
}
// ... The same for InputGrid2
// bool property
private bool _isEditable;
public bool IsEditable
{
get
{
return _isEditable;
}
set
{
_input= _isEditable;
OnPropertyChanged(new PropertyChangedEventArgs("IsEditable"));
}
}
}
WPF 代码片段:
<DataGrid
DataContext="{StaticResource SomeViewModel}"
IsReadOnly="{Binding IsEditable}">
</DataGrid>
<DataGrid
DataContext="{StaticResource SomeViewModel}"
IsReadOnly="{Binding IsEditable}">
</DataGrid>
我创建了 2 个数据网格并将它们并排放置。数据网格允许用户编辑,当值范围为“0 > input”或“100 < input”时,将显示错误图标。
但是,当数据网格1发生错误时,用户仍然可以编辑数据网格2。当数据网格1发生错误时,用户无法编辑其他数据网格怎么办?对这种情况有什么建议或对此有适当的解决办法吗?
使用 WPFToolKit 数据网格,因为当前项目版本是 .Net 3.5
目标数据网格视图
WPF DataGrid
有一个 IsReadOnly
属性,您可以将其设置为 True
以确保用户无法编辑您的 DataGrid 的单元格。
你可以将一些布尔值绑定到两个网格的 IsReadOnly
属性,它会改变以防输入(我想也是绑定的)超出范围(你可以设置这个input
setter)
代码片段:
public class SomeViewModel: INotifyPropertyChanged
{
// INotifyPropertyChanged members
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
// Input property
private string _input;
public string InputGrid1
{
get
{
return _input;
}
set
{
if (value < 0 || value > 100 )
{
IsEditable = true;
}
_input= value;
OnPropertyChanged(new PropertyChangedEventArgs("InputGrid1"));
}
}
// ... The same for InputGrid2
// bool property
private bool _isEditable;
public bool IsEditable
{
get
{
return _isEditable;
}
set
{
_input= _isEditable;
OnPropertyChanged(new PropertyChangedEventArgs("IsEditable"));
}
}
}
WPF 代码片段:
<DataGrid
DataContext="{StaticResource SomeViewModel}"
IsReadOnly="{Binding IsEditable}">
</DataGrid>
<DataGrid
DataContext="{StaticResource SomeViewModel}"
IsReadOnly="{Binding IsEditable}">
</DataGrid>