datagridcell을 항상 편집 모드로 유지해야합니다. 난 컨트롤 템플릿을 사용하여 DataGrid 셀에서 TextBox를 가져갈 수 있도록 DataGrid 셀 편집 모드를 만드는 옵션을 찾지 못했습니다.WPF dataGgridCell 편집 모드
텍스트 상자에 쓸 수 있지만 DataGrid 셀 내용이 업데이트되지 않습니다. 어떻게하면 텍스트 상자에 글을 써서 DataGrid 셀 내용을 업데이트 할 수 있습니까? 디
datagridcell을 항상 편집 모드로 유지해야합니다. 난 컨트롤 템플릿을 사용하여 DataGrid 셀에서 TextBox를 가져갈 수 있도록 DataGrid 셀 편집 모드를 만드는 옵션을 찾지 못했습니다.WPF dataGgridCell 편집 모드
텍스트 상자에 쓸 수 있지만 DataGrid 셀 내용이 업데이트되지 않습니다. 어떻게하면 텍스트 상자에 글을 써서 DataGrid 셀 내용을 업데이트 할 수 있습니까? 디
당신이 DataGridCell.IsEditing Property를 시도
<Style TargetType="{x:Type DataGridCell}" x:Key="DatagridCellWithTextbox">
<Setter Property="BorderThickness" Value="2"></Setter>
<Setter Property="Foreground" Value="{DynamicResource ContentNormalBrush}"/>
<Setter Property="Margin" Value="0"></Setter>
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid Background="{TemplateBinding Background}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<TextBox x:Name="txtCell" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Text}" VerticalContentAlignment="Top" Focusable="True" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
감사 : 여기 스타일은?
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="IsEditing" Value="True" />
</Style>
편집 :
당신은 True
에 DataGrid.CellEditEnding Event에 Cancel
속성을 설정 편집 모드로 유지할 수 있습니다.
<DataGrid CellEditEnding="DataGrid_CellEditEnding"
.
private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
e.Cancel = true;
}
나는이 질문이 오래된 것을 알고 있지만 최근 내 자신의 솔루션을 개발했습니다.
내가 할 모든 DataGridTextColumn
에서 상속과 GenerateElement
방법 오버라이드 (override)되어
public class EditingTextBoxColumn : DataGridTextColumn
{
protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
{
var textbox = base.GenerateEditingElement(cell, dataItem) as TextBox;
textbox.IsReadOnly = IsReadOnly;
return textbox;
}
}
이 열 aswell 다른 유형의 작동합니다. 물론 이것은 이미 존재하는 DataGridColumn
유형에만 적용됩니다 (DataGridTextColumn
, DataGridComboBoxColumn
등 ...).
편집을 시도했지만 수정하지 않은 모드로 되돌아갑니다. 항상 편집 모드로 유지하려고합니다. – Dee
처음에는 스타일 설정기를 복원하겠다고 생각 했었습니다. 아마도 스타일 트리거를 사용하여 항상 트리거를 수행 할 수 있었지만 편집 할 때는 새로운 제안을 시도해보십시오. – LPL