DataGrid가있는 사용자 정의 컨트롤이있는 프로젝트를 디자인했습니다. 컨트롤의 DataGrid의 일부 열은 Twoway 바인딩을 사용하는 DataGridTextColumn (바인딩 모델에서 데이터를 읽고 쓰는 데 사용)입니다. DataGridTextColumn의 일부 셀에는 매우 긴 텍스트가 포함되어있어 셀에 성공적으로 표시 할 수 없습니다. 이 셀에 스크롤 막대를 넣기로 결정했습니다. 모든 셀 열에는 사용자 정의 스타일이 포함되어 있으므로 DataGridCell 템플리트 대체 템플릿으로 직접 만들 수 있습니다. 는 여기있다 :WPF Toolkit 스크롤 막대가있는 DataGridTextColumn
<Style x:Key="DataGridTextColumnWithScrollBar" TargetType="{x:Type Control}" BasedOn="{StaticResource {x:Type wpf_toolkit:DataGridCell}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Control}">
<ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content, Mode=TwoWay}">
<ContentPresenter.ContentTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Text, Mode=TwoWay}"
TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"
VerticalAlignment="Stretch" Margin="2,0" BorderThickness="0"/>
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
스타일 DataGridTextColumnWithScrollBar는 기본 데이터 그리드 텍스트 열 셀 스타일과 합병. 그것은 잘 작동하지만 텍스트를 편집 할 수 없습니다 (모든 스크롤이 나타납니다,하지만 텍스트를 편집 한 후 모델이 업데이트되지 않습니다). 내 문제를 해결할 수있는 해결책이 있습니까? 나는 여러 가지 방법을 시도했는데 (예를 들어, WPF Nested binding in a controltemplate) 아무 것도 작동하지 않습니다 ...
P. 컨트롤은 외부 dll 라이브러리에 저장되어 있기 때문에 datagridtext 열을 datatemplate textcolumn 변경할 수 없습니다.
미리 감사드립니다. 여기
아마도 셀 템플릿과 셀 편집 템플릿에 대해 두 개의 별도 템플릿을 정의해야합니다. 둘 다를 위해 같은 것을 사용하면 이러한 문제가 발생할 수 있습니다. 이 템플릿을 사용하는 방법에 대한 코드를 좀 더 공유해도 될까요? – pushpraj
이 스타일을 기본 스타일로 병합하여 datagridtextcolumn cellstyle 속성에 연결되는 내용. 셀 템플릿 및 셀 편집 템플릿에 대한 예제 템플릿을 보여줄 수 있습니까? – ArhiChief
이 코드 만 있습니다. – ArhiChief