2012-09-19 2 views
3

내가 정말로하고 싶은 것은 DataGridTextColumn의 특정 바인딩에 대해 StringFormat을 변경하는 것이지만 바인딩에 의해 정의 되었기 때문에 어떻게 든 전체 바인딩을 변경해야한다고 가정합니다.편집 모드로 전환 할 때 DataGridTextColumn의 바인딩을 변경하는 방법이 있습니까?

내가 DataGridTextColumn을 갖고있는 것 같아요 때문에 DataGridTemplateColumn는 사용하지 않도록 할 이유 몇 가지 내장 된 기본 기능 잃을와 같은 더 수동으로 처리하는 코드를 작성해야한다 :

  • 을 능력은

현재는 (원하는 디스플레이/정말이에요 바인딩 (엑셀 데이터 격자 내에서 그리고에서에서) 편집 모드로 자동으로

  • 복사 및 데이터 붙여 넣기 셀을두고 비 편집 모드 셀에 입력을 시작합니다 바인딩 D 모드)

    Binding="{Binding ADecimalNumber StringFormat={StaticResource ReadDecimalFormat}}" 
    

    원하는 편집 모드 방금 FYI로

    Binding="{Binding ADecimalNumber StringFormat={StaticResource WriteDecimalFormat}}" 
    

    바인딩은 ReadDecimalFormat 정밀도의 2 자리 십진수 값을 표시하고, 상기 WriteDecimalFormat 원본을 표시한다 입력 한 십진법 값 (정밀도의 모든 자릿수, 대개의 경우 4 자리 숫자입니다.)

  • 답변

    4

    일시적으로 작동시켜 현재 테스트하고있는 것 같습니다.

    <DataGridTextColumn> 
        <DataGridTextColumn.ElementStyle> 
         <Style TargetType="{x:Type TextBox}"> 
          <Setter Property="Text" Value="{Binding}" /> 
         </Style> 
        </DataGridTextColumn.ElementStyle> 
    
    
    <DataGridTextColumn.EditingElementStyle> 
        <Style TargetType="{x:Type TextBox}"> 
         <Setter Property="Text" Value="{Binding}" /> 
        </Style> 
    </DataGridTextColumn.EditingElementStyle> 
    

    +0

    일이 – Josh

    +0

    그것은에 대한 자동 처리 모양으로 날 이길 :

    <DataGridTextColumn Header="Value" ClipboardContentBinding="{Binding ADecimalNumber}"> <DataGridTextColumn.ElementStyle> <Style TargetType="TextBlock"> <Setter Property="Text" Value="{Binding ADecimalNumber, StringFormat={StaticResource ReadDecimalFormat}}"/> </Style> </DataGridTextColumn.ElementStyle> <DataGridTextColumn.EditingElementStyle> <Style TargetType="TextBox"> <Setter Property="Text" Value="{Binding ADecimalNumber, StringFormat={StaticResource WriteDecimalFormat}}"/> </Style> </DataGridTextColumn.EditingElementStyle> </DataGridTextColumn> 

    +0

    다시 가져 오기, 복사/붙여 넣기가 정상적으로 작동하는지 확인하려면 ClipboardContentBinding을 올바른 바인딩으로 설정해야합니다. "{ADCPimalNumber} 바인딩", 나는 ClipboardContentBinding이 바인딩에 기본값으로 설정되어있는 경우이 솔루션에서 더 이상 사용되지 않는 DataGridTextColumn 요소에 설정되어 있으므로 수동으로 설정해야한다고 가정합니다. –

    2

    는 우리가 편집하거나되지 않은 여부를이 요소의 스타일을 사용하여 검사 달성 할 수 있었다 복사 및 붙여 넣기는이 솔루션에서 더 이상 작동하지 않지만 F2는 편집 모드에서 편집 모드로 계속 작동합니다.
    관련 문제