WPF DataGrid에서 한 번의 클릭으로 편집


92

사용자가 셀을 편집 모드로 전환하고 한 번의 클릭으로 셀이 포함 된 행을 강조 표시 할 수 있기를 바랍니다. 기본적으로 두 번 클릭합니다.

이것을 재정의하거나 구현하려면 어떻게해야합니까?


WPF 툴킷에있는 DataGrid를 사용하고 있습니까?
myermian 2010 년

4
시도한 내용과 작동하지 않는 방법에 대해 좀 더 많은 정보를 제공해 주시겠습니까?
Zach Johnson

답변:


76

이 문제를 해결 한 방법은 다음과 같습니다.

<DataGrid DataGridCell.Selected="DataGridCell_Selected" 
          ItemsSource="{Binding Source={StaticResource itemView}}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Nom" Binding="{Binding Path=Name}"/>
        <DataGridTextColumn Header="Age" Binding="{Binding Path=Age}"/>
    </DataGrid.Columns>
</DataGrid>

이 DataGrid는 CollectionViewSource (더미 Person 개체 포함)에 바인딩됩니다 .

마술은 거기에서 일어난다 : DataGridCell.Selected = "DataGridCell_Selected" .

DataGrid 셀의 Selected Event를 연결하고 DataGrid에서 BeginEdit ()를 호출합니다.

다음은 이벤트 처리기의 코드입니다.

private void DataGridCell_Selected(object sender, RoutedEventArgs e)
{
    // Lookup for the source to be DataGridCell
    if (e.OriginalSource.GetType() == typeof(DataGridCell))
    {
        // Starts the Edit on the row;
        DataGrid grd = (DataGrid)sender;
        grd.BeginEdit(e);
    }
}

8
SelectionUnitDataGrid 의 속성을 로 설정하여 이미 선택된 행 문제를 해결할 수 있습니다 Cell.
Matt Winckler 2012-07-25

DataGridCell에 TextBox가 있다고 가정합니다. 을 호출 한 후 grd.BeginEdit(e)해당 셀의 TextBox에 포커스를두고 싶습니다. 어떻게 할 수 있습니까? FindName("txtBox")DataGridCell과 DataGrid 모두에서 호출 을 시도했지만 null을 반환합니다.
user1214135

GotFocus = "DataGrid_GotFocus"가 누락 된 것 같습니까?
시너지

4
이것은 잘 작동하지만 이것을 권장하지 않습니다. 내 프로젝트에서 이것을 사용했고 표준 DG 동작으로 롤백하기로 결정했습니다. 앞으로 DG가 성장하고 복잡해지면 유효성 검사, 새 행 추가 및 기타 이상한 동작에 문제가 발생할 것입니다.
white.zaz

1
@ white.zaz는 표준 DG 동작으로 롤백 한 후 고객이 만족 했습니까? 이 질문을하는 주된 이유는 DG가 편집 모드로 전환되기 전에 클릭을 너무 많이해야하기 때문에 표준 DG 기능의 편집이 사용자 친화적이지 않기 때문입니다.
AEMLoviji

42

Micael Bergeron의 답변은 저에게 적합한 솔루션을 찾는 좋은 출발점이되었습니다. 이미 편집 모드에있는 동일한 행의 셀에 대해서도 한 번 클릭 편집을 허용하려면 약간 조정해야했습니다. SelectionUnit Cell을 사용하는 것은 나에게 옵션이 아닙니다.

행의 셀을 처음 클릭했을 때만 발생하는 DataGridCell.Selected 이벤트를 사용하는 대신 DataGridCell.GotFocus 이벤트를 사용했습니다.

<DataGrid DataGridCell.GotFocus="DataGrid_CellGotFocus" />

그렇게하면 항상 올바른 셀에 초점을 맞추고 편집 모드에 있지만 셀의 컨트롤에는 초점이 맞춰지지 않습니다. 이렇게 해결했습니다.

private void DataGrid_CellGotFocus(object sender, RoutedEventArgs e)
{
    // Lookup for the source to be DataGridCell
    if (e.OriginalSource.GetType() == typeof(DataGridCell))
    {
        // Starts the Edit on the row;
        DataGrid grd = (DataGrid)sender;
        grd.BeginEdit(e);

        Control control = GetFirstChildByType<Control>(e.OriginalSource as DataGridCell);
        if (control != null)
        {
            control.Focus();
        }
    }
}

private T GetFirstChildByType<T>(DependencyObject prop) where T : DependencyObject
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(prop); i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild((prop), i) as DependencyObject;
        if (child == null)
            continue;

        T castedProp = child as T;
        if (castedProp != null)
            return castedProp;

        castedProp = GetFirstChildByType<T>(child);

        if (castedProp != null)
            return castedProp;
    }
    return null;
}

3
확인란이 작동하지 않는 것 같습니다. 난 여전히 그들을 더블 클릭해야
토마스 Klammer

9

From : http://wpf.codeplex.com/wikipage?title=Single-Click%20Editing

XAML :

<!-- SINGLE CLICK EDITING -->
<Style TargetType="{x:Type dg:DataGridCell}">
    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown"></EventSetter>
</Style>

코드 비하인드 :

//
// SINGLE CLICK EDITING
//
private void DataGridCell_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DataGridCell cell = sender as DataGridCell;
    if (cell != null && !cell.IsEditing && !cell.IsReadOnly)
    {
        if (!cell.IsFocused)
        {
            cell.Focus();
        }
        DataGrid dataGrid = FindVisualParent<DataGrid>(cell);
        if (dataGrid != null)
        {
            if (dataGrid.SelectionUnit != DataGridSelectionUnit.FullRow)
            {
                if (!cell.IsSelected)
                    cell.IsSelected = true;
            }
            else
            {
                DataGridRow row = FindVisualParent<DataGridRow>(cell);
                if (row != null && !row.IsSelected)
                {
                    row.IsSelected = true;
                }
            }
        }
    }
}

static T FindVisualParent<T>(UIElement element) where T : UIElement
{
    UIElement parent = element;
    while (parent != null)
    {
        T correctlyTyped = parent as T;
        if (correctlyTyped != null)
        {
            return correctlyTyped;
        }

        parent = VisualTreeHelper.GetParent(parent) as UIElement;
    }

    return null;
}

1
이것은 특정 경우에 작동하지 않으며 Micael Bergerons 솔루션보다 더 복잡합니다.
SwissCoder

저에게는 이것이 거의 해결책이었습니다. "PreviewMouseLeftButtonUp"이벤트 핸들러를 추가하고 정확히 동일한 코드를 넣어야했습니다.
Néstor Sánchez A.

콤보 박스가 있으면 작동하지 않습니다. 미리보기를 클릭하면 콤보 상자의 팝업이 클릭되고 cell.focus 호출이 모든 것을 망칩니다. 가장 쉬운 수정은 마우스 이벤트 원본 소스를 보는 섹션을 추가하는 것입니다. 여기에서 FindVisualParent를 사용하여 데이터 그리드 내부에 있는지 확인합니다. 그렇지 않은 경우 다른 작업을 수행하지 마십시오.
John Gardner

7

http://wpf.codeplex.com/wikipage?title=Single-Click%20Editing 의 솔루션은 저에게 잘 맞았지만 ResourceDictionary에 정의 된 Style을 사용하여 모든 DataGrid에 대해 활성화했습니다. 리소스 사전에서 핸들러를 사용하려면 여기에 코드 숨김 파일을 추가해야합니다. 방법은 다음과 같습니다.

다음은 DataGridStyles.xaml 리소스 사전입니다.

    <ResourceDictionary x:Class="YourNamespace.DataGridStyles"
                x:ClassModifier="public"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Style TargetType="DataGrid">
            <!-- Your DataGrid style definition goes here -->

            <!-- Cell style -->
            <Setter Property="CellStyle">
                <Setter.Value>
                    <Style TargetType="DataGridCell">                    
                        <!-- Your DataGrid Cell style definition goes here -->
                        <!-- Single Click Editing -->
                        <EventSetter Event="PreviewMouseLeftButtonDown"
                                 Handler="DataGridCell_PreviewMouseLeftButtonDown" />
                    </Style>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>

루트 요소의 x : Class 속성에 유의하십시오. 클래스 파일을 만듭니다. 이 예에서는 DataGridStyles.xaml.cs 입니다. 이 코드를 안에 넣으십시오.

using System.Windows.Controls;
using System.Windows;
using System.Windows.Input;

namespace YourNamespace
{
    partial class DataGridStyles : ResourceDictionary
    {

        public DataGridStyles()
        {
          InitializeComponent();
        }

     // The code from the myermian's answer goes here.
}

링크가 종료 됨 (15 자 제한)
Blechdose

4

나는 Dušan Knežević의 제안에 따라이 방법을 선호합니다. 그게 다입니다))

<DataGrid.Resources>

    <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
        <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver"
                                   Value="True" />
                        <Condition Property="IsReadOnly"
                                   Value="False" />
                    </MultiTrigger.Conditions>
                    <MultiTrigger.Setters>
                        <Setter Property="IsEditing"
                                Value="True" />
                    </MultiTrigger.Setters>
                </MultiTrigger>
        </Style.Triggers>
    </Style>

</DataGrid.Resources>

콤보 박스가 편집 템플릿으로 사용되는 경우에는 작동하지 않습니다. 마우스 이벤트를 캡처하는 확인란과 같은 다른 사람들도 중단 될 것이라고 가정합니다
Steve

나를 위해 이것은 콤보 상자 열과 함께 작동하지만 "새 항목 줄"(마지막 줄)의 텍스트 상자에는 이상한 동작이 있습니다. 처음에 클릭하면 입력 포커스가 표시되고 항목을 입력 할 수 있습니다. 마우스를 셀 밖으로 이동할 때 , 텍스트 상자의 값이 사라집니다. 추가로 입력하면 새로 입력 한 텍스트가 올바르게 저장됩니다 (원하는대로 새 항목이 생성됨). 이것은 ComboboxColumn에서도 발생합니다.
FrankM

처음에는 잘 작동하는 것처럼 보이지만 Datagrid를 완전히 엉망으로 만들면 정렬을 시도하면 이러한 모든 값이 사라집니다.이 코드가 없으면 모든 것이 정렬로 잘 작동합니다.
Chandraprakash

3

마우스가 위에있을 때 DataGridCell의 IsEditing 속성을 True로 설정하는 트리거를 추가하여 문제를 해결했습니다. 그것은 내 문제의 대부분을 해결했습니다. 콤보 박스에서도 작동합니다.

<Style TargetType="DataGridCell">
     <Style.Triggers>
         <Trigger Property="IsMouseOver" Value="True">
             <Setter Property="IsEditing" Value="True" />
         </Trigger>
     </Style.Triggers>
 </Style>

1
작동하지 않습니다 ... 마우스가 셀을 떠나 자마자 편집 내용이 사라집니다. 따라서 1) 편집하려는 셀을 마우스 왼쪽 버튼으로 클릭하십시오. 2) 마우스를 다른 곳으로 옮기십시오. 3) 입력을 시작하십시오. 셀이 더 이상 편집 모드가 아니므로 입력이 작동하지 않습니다.
Skarsnik

1
나에게도 작동하지 않습니다. 나를 위해 텍스트 상자 편집 방지
Blechdose

그러나이 방법에는 한 가지 문제가 있습니다. 편집을 위해 첫 번째 열을 잠갔습니다.이 방법을 사용하면 첫 번째 열도 편집 할 수 있습니다!
Chandraprakash

3

MVVM에서 한 번의 클릭으로 편집 셀을 찾고 있는데 이것은 다른 방법입니다.

  1. xaml에 동작 추가

    <UserControl xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
                 xmlns:myBehavior="clr-namespace:My.Namespace.To.Behavior">
    
        <DataGrid>
            <i:Interaction.Behaviors>
                <myBehavior:EditCellOnSingleClickBehavior/>
            </i:Interaction.Behaviors>
        </DataGrid>
    </UserControl>
    
  2. EditCellOnSingleClickBehavior 클래스는 System.Windows.Interactivity.Behavior를 확장합니다.

    public class EditCellOnSingleClick : Behavior<DataGrid>
    {
        protected override void OnAttached()
        {
            base.OnAttached();
            this.AssociatedObject.LoadingRow += this.OnLoadingRow;
            this.AssociatedObject.UnloadingRow += this.OnUnloading;
        }
    
        protected override void OnDetaching()
        {
            base.OnDetaching();
            this.AssociatedObject.LoadingRow -= this.OnLoadingRow;
            this.AssociatedObject.UnloadingRow -= this.OnUnloading;
        }
    
        private void OnLoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.GotFocus += this.OnGotFocus;
        }
    
        private void OnUnloading(object sender, DataGridRowEventArgs e)
        {
            e.Row.GotFocus -= this.OnGotFocus;
        }
    
        private void OnGotFocus(object sender, RoutedEventArgs e)
        {
            this.AssociatedObject.BeginEdit(e);
        }
    }
    

짜잔!


1

user2134678의 답변에는 두 가지 문제가 있습니다. 하나는 매우 사소하고 기능적 효과가 없습니다. 다른 하나는 상당히 중요합니다.

첫 번째 문제는 GotFocus가 실제로 DataGridCell이 아닌 DataGrid에 대해 실제로 호출된다는 것입니다. XAML의 DataGridCell 한정자는 중복됩니다.

대답에서 찾은 주요 문제는 Enter 키 동작이 손상되었다는 것입니다. Enter는 정상적인 DataGrid 동작에서 현재 셀 아래의 다음 셀로 이동해야합니다. 그러나 실제로 장면 뒤에서 일어나는 일은 GotFocus 이벤트가 두 번 호출된다는 것입니다. 현재 셀이 포커스를 잃으면 한 번, 새로운 셀이 포커스를 얻었을 때. 그러나 BeginEdit가 첫 번째 셀에서 호출되는 한 다음 셀은 활성화되지 않습니다. 결론은 한 번의 클릭으로 편집 할 수 있지만 말 그대로 그리드를 클릭하지 않는 사람은 누구나 불편할 것이며 사용자 인터페이스 디자이너는 모든 사용자가 마우스를 사용하고 있다고 가정해서는 안됩니다. (키보드 사용자는 Tab을 사용하여 주변을 둘러 볼 수 있지만 그래도 필요하지 않은 농구를 뛰어 넘고 있음을 의미합니다.)

그래서이 문제에 대한 해결책은? 셀에 대한 이벤트 KeyDown을 처리하고 키가 Enter 키인 경우 BeginEdit가 첫 번째 셀에서 실행되는 것을 중지하는 플래그를 설정합니다. 이제 Enter 키가 정상적으로 작동합니다.

먼저 다음 스타일을 DataGrid에 추가합니다.

<DataGrid.Resources>
    <Style TargetType="{x:Type DataGridCell}" x:Key="SingleClickEditingCellStyle">
        <EventSetter Event="KeyDown" Handler="DataGridCell_KeyDown" />
    </Style>
</DataGrid.Resources>

클릭 한 번으로 활성화 할 열의 "CellStyle"속성에 해당 스타일을 적용합니다.

그런 다음 뒤에있는 코드에는 GotFocus 핸들러에 다음이 있습니다 (여기서는 "원 클릭 데이터 그리드 요청"클라이언트가 개발 언어로 원하는 것이기 때문에 여기에서 VB를 사용하고 있습니다).

Private _endEditing As Boolean = False

Private Sub DataGrid_GotFocus(ByVal sender As Object, ByVal e As RoutedEventArgs)
    If Me._endEditing Then
        Me._endEditing = False
        Return
    End If

    Dim cell = TryCast(e.OriginalSource, DataGridCell)

    If cell Is Nothing Then
        Return
    End If

    If cell.IsReadOnly Then
        Return
    End If

    DirectCast(sender, DataGrid).BeginEdit(e)
    .
    .
    .

그런 다음 KeyDown 이벤트에 대한 처리기를 추가합니다.

Private Sub DataGridCell_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
    If e.Key = Key.Enter Then
        Me._endEditing = True
    End If
End Sub

이제 기본 구현의 기본 동작을 변경하지 않았지만 한 번의 클릭 편집을 지원하는 DataGrid가 있습니다.


0

나는 파티에 조금 늦었지만 같은 문제가 있었고 다른 해결책을 찾았습니다.

     public class DataGridTextBoxColumn : DataGridBoundColumn
 {
  public DataGridTextBoxColumn():base()
  {
  }

  protected override FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)
  {
   throw new NotImplementedException("Should not be used.");
  }

  protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
  {
   var control = new TextBox();
   control.Style = (Style)Application.Current.TryFindResource("textBoxStyle");
   control.FontSize = 14;
   control.VerticalContentAlignment = VerticalAlignment.Center;
   BindingOperations.SetBinding(control, TextBox.TextProperty, Binding);
    control.IsReadOnly = IsReadOnly;
   return control;
  }
 }

        <DataGrid Grid.Row="1" x:Name="exportData" Margin="15" VerticalAlignment="Stretch" ItemsSource="{Binding CSVExportData}" Style="{StaticResource dataGridStyle}">
        <DataGrid.Columns >
            <local:DataGridTextBoxColumn Header="Sample ID" Binding="{Binding SampleID}" IsReadOnly="True"></local:DataGridTextBoxColumn>
            <local:DataGridTextBoxColumn Header="Analysis Date" Binding="{Binding Date}" IsReadOnly="True"></local:DataGridTextBoxColumn>
            <local:DataGridTextBoxColumn Header="Test" Binding="{Binding Test}" IsReadOnly="True"></local:DataGridTextBoxColumn>
            <local:DataGridTextBoxColumn Header="Comment" Binding="{Binding Comment}"></local:DataGridTextBoxColumn>
        </DataGrid.Columns>
    </DataGrid>

보시다시피 DataGridBoundColumn에서 모든 것을 상속하는 내 자신의 DataGridTextColumn을 작성했습니다. GenerateElement 메서드를 재정의하고 바로 텍스트 상자 컨트롤을 반환하면 편집 요소를 생성하는 메서드가 호출되지 않습니다. 다른 프로젝트에서는 이것을 사용하여 Datepicker 열을 구현 했으므로 확인란과 콤보 상자에서도 작동합니다.

이것은 나머지 데이터 그리드 동작에 영향을 미치지 않는 것 같습니다. 적어도 부작용을 발견하지 못했고 지금까지 부정적인 피드백을받지 못했습니다.


-1

최신 정보

셀이 텍스트 상자 (편집 모드와 비 편집 모드를 구분하지 않음)로 유지되는 것이 괜찮다면 간단한 솔루션입니다. 이런 식으로 한 번의 클릭으로 편집이 즉시 작동합니다. 이것은 콤보 상자 및 버튼과 같은 다른 요소에서도 작동합니다. 그렇지 않으면 업데이트 아래의 솔루션을 사용하십시오.

<DataGridTemplateColumn Header="My Column header">
   <DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
         <TextBox Text="{Binding MyProperty } />
      </DataTemplate>
   </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

업데이트 종료

Rant

나는 여기와 Google에서 찾은 모든 것을 시도했으며 심지어 내 버전을 만들어 보았습니다. 그러나 모든 답변 / 솔루션은 주로 텍스트 상자 열에 대해 작동했지만 다른 모든 요소 (체크 박스, 콤보 상자, 버튼 열)와 함께 작동하지 않았거나 다른 요소 열을 손상 시키거나 다른 부작용이있었습니다. 데이터 그리드가 그처럼 추악한 방식으로 동작하도록 만들어서 우리가 그러한 해킹을 만들도록 강요 해 주신 마이크로 소프트에게 감사드립니다. 그래서 다른 열에 영향을주지 않고 텍스트 상자 열에 직접 스타일을 적용 할 수있는 버전을 만들기로 결정했습니다.

풍모

  • 뒤에 코드가 없습니다. MVVM 친화적.
  • 동일하거나 다른 행에서 다른 텍스트 상자 셀을 클릭 할 때 작동합니다.
  • TAB 및 ENTER 키가 작동합니다.
  • 다른 열에는 영향을주지 않습니다.

출처

이 솔루션과 @my의 대답을 사용하여 첨부 된 동작으로 수정했습니다. http://wpf-tutorial-net.blogspot.com/2016/05/wpf-datagrid-edit-cell-on-single-click.html

이것을 어떻게 사용 하는가

이 스타일을 추가하십시오. 데이터 그리드에 멋진 스타일BasedOn사용 하고 잃고 싶지 않을 때 중요 합니다.

<Window.Resources>
    <Style x:Key="SingleClickEditStyle" TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
        <Setter Property="local:DataGridTextBoxSingleClickEditBehavior.Enable" Value="True" />
    </Style>
</Window.Resources>

다음 과 같이 CellStyle각각에 스타일을 적용하십시오 DataGridTextColumns.

<DataGrid ItemsSource="{Binding MyData}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="My Header" Binding="{Binding Comment}" CellStyle="{StaticResource SingleClickEditStyle}" />         
    </DataGrid.Columns>
</DataGrid>

그리고 이제이 클래스를 MainViewModel과 동일한 네임 스페이스 (또는 다른 네임 스페이스에 추가합니다.하지만 local) 이외의 네임 스페이스 접두사를 사용해야합니다 . 연결된 동작의 추악한 상용구 코드 세계에 오신 것을 환영합니다.

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace YourMainViewModelNameSpace
{
    public static class DataGridTextBoxSingleClickEditBehavior
    {
        public static readonly DependencyProperty EnableProperty = DependencyProperty.RegisterAttached(
            "Enable",
            typeof(bool),
            typeof(DataGridTextBoxSingleClickEditBehavior),
            new FrameworkPropertyMetadata(false, OnEnableChanged));


        public static bool GetEnable(FrameworkElement frameworkElement)
        {
            return (bool) frameworkElement.GetValue(EnableProperty);
        }


        public static void SetEnable(FrameworkElement frameworkElement, bool value)
        {
            frameworkElement.SetValue(EnableProperty, value);
        }


        private static void OnEnableChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (d is DataGridCell dataGridCell)
                dataGridCell.PreviewMouseLeftButtonDown += DataGridCell_PreviewMouseLeftButtonDown;
        }


        private static void DataGridCell_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            EditCell(sender as DataGridCell, e);
        }

        private static void EditCell(DataGridCell dataGridCell, RoutedEventArgs e)
        {
            if (dataGridCell == null || dataGridCell.IsEditing || dataGridCell.IsReadOnly)
                return;

            if (dataGridCell.IsFocused == false)
                dataGridCell.Focus();

            var dataGrid = FindVisualParent<DataGrid>(dataGridCell);
            dataGrid?.BeginEdit(e);
        }


        private static T FindVisualParent<T>(UIElement element) where T : UIElement
        {
            var parent = VisualTreeHelper.GetParent(element) as UIElement;

            while (parent != null)
            {
                if (parent is T parentWithCorrectType)
                    return parentWithCorrectType;

                parent = VisualTreeHelper.GetParent(parent) as UIElement;
            }

            return null;
        }
    }
}

-3
 <DataGridComboBoxColumn.CellStyle>
                        <Style TargetType="DataGridCell">
                            <Setter Property="cal:Message.Attach" 
                            Value="[Event MouseLeftButtonUp] = [Action ReachThisMethod($source)]"/>
                        </Style>
                    </DataGridComboBoxColumn.CellStyle>
 public void ReachThisMethod(object sender)
 {
     ((System.Windows.Controls.DataGridCell)(sender)).IsEditing = true;

 }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.