У меня есть datagrid с двумя столбцами, один из которых является DataGridComboBox, а столбец «Serial No», а другой - DataGridTextColumn, а именно «Qty». Столбец DataGridComboBox может иметь или не иметь значений в нем. Если в поле со списком есть значения, тогда пользователь может выбрать одно значение из него, тогда столбец qty станет uneditable (только для чтения) и установит 1 как значение по умолчанию qty, иначе он станет редактируемой ячейкой. Следовательно, пользователь может ввести любое количество на нем. Как я сделал Столбец Qty редактируется и не редактируется на основе выбора значения из combobox?wpf datagrid: Сделать ячейку Редактируемым и нередактируемым
0
A
ответ
0
вы можете попробовать некоторые вещи, как этот
<Grid>
<DataGrid ItemsSource="{Binding A}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="Choose" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ListOfValues}" SelectedValue="{Binding Selected, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Value">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Selected, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="{Binding ValueAvalible}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid
В сотовом Demplate как сейчас я поставил только TextBox и связала ValueAvalible к ReadOnly Property. Вы также можете иметь как метку, так и TextBox, и вы можете привязать ValueAvalible к видимости ярлыка и TextBox и. Вы можете скрыть текст, чтобы показать метку, если значение доступно. Если значение не существует в COMBOBOX вы можете скрыть метку и показать TextBox, который даст лучший пользовательский опыт, как ниже
<StackPanel>
<Label Content="{Binding Selected}" Visibility="{Binding ValueAvalible, Converter={StaticResource ResourceKey=booleanToVisiblity}}"/>
<TextBox Text="{Binding Selected, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding ValueAvalible, Converter={StaticResource ResourceKey=invertedBooleanToVisiblity}}"/>
</StackPanel>
В вашей ViewModel
class ViewModel
{
public ObservableCollection<Values> A
{
get;
set;
}
public ViewModel()
{
A = new ObservableCollection<Values>();
Values vv = new Values();
vv.ListOfValues = new ObservableCollection<string>();
vv.ListOfValues.Add("1");
vv.ListOfValues.Add("2");
vv.Selected = vv.ListOfValues[0];
vv.ValueAvalible = true;
A.Add(vv);
A.Add(new Values());
}
}
public class Values : NotifiyPropertyChanged
{
public ObservableCollection<string> ListOfValues
{
get;
set;
}
private string selectedValue;
public string Selected
{
get
{
return selectedValue;
}
set
{
selectedValue = value;
Notify("Selected");
}
}
public bool ValueAvalible
{
get;
set;
}
}
public class NotifiyPropertyChanged : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void Notify(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
Смежные вопросы
- 1. Сделать столбец DataGrid WPF редактируемым
- 2. Как сделать только ячейку datagrid Wpf только
- 3. WPF отключить ячейку DataGrid
- 4. Сделать TextArea Wicket нередактируемым
- 5. сделать Jtable нередактируемым
- 6. Реферирование ячейку в WPF DataGrid
- 7. Как сделать ввод текста нередактируемым?
- 8. Как сделать ячейку Datagrid WPF ReadOnly для определенных строк?
- 9. WPF: Показать ячейку отредактирован в связанной DataGrid
- 10. не может редактировать ячейку в datagrid WPF
- 11. Выберите ячейку datagrid wpf во время выполнения
- 12. Как сделать один столбец редактируемым в readonly datagrid?
- 13. Как сделать столбец редактируемым в пользовательском datagrid в asp.net?
- 14. Ручка нажмите на строку и/или ячейку DataGrid в WPF
- 15. WPF DataGrid и Adorners
- 16. Невозможно сделать Webview редактируемым
- 17. Сделать объект UITextView редактируемым
- 18. Невозможно сделать заголовок редактируемым
- 19. WPF DataGrid и многопоточность
- 20. Как сделать ячейку в DATAGRID ссылке на другое окно?
- 21. Как изменить текст по умолчанию NSScrollView и сделать его нередактируемым
- 22. WPF DataGrid и ITypedList
- 23. WPF DataGrid - Установить ячейку в режим редактирования программно
- 24. Как выбрать строку или ячейку в WPF DataGrid программно?
- 25. добавить корневой узел и сделать его редактируемым
- 26. Сделать текстовое поле редактируемым и сохранить его
- 27. Раскраска ячеек WPF Datagrid
- 28. Найти сфокусированную ячейку из DataGrid
- 29. wpf datagrid cell validation
- 30. DataTemplate переполняет ячейку datagrid
Пожалуйста размещает код , Чтобы знать, что вы пробовали. –