在ContentPresenter子控件中设置属性

时间:2015-12-04 14:58:11

标签: c# wpf infragistics xamdatagrid

我想在TextTrimming上设置TextBlock

<Style TargetType="{x:Type dg.CellValuePresenter}">
  <Setter Property="ContentTemplate" Value="{StaticResource Tmp}" />
</Style>

我的模板:

<DataTemplate x:Key="Tmp">
  <ContentPresenter Content="{Binding}" >
    <ContentPresenter.Resource>
      <Style TargetType="{x:Type TextBlock}">
        <Setter Property="TextTrimming" Value="CharacterEllipsis"/>
      </Style>
    </ContentPresenter.Resource>
  </ContentPresenter>
</DataTemplate>

内容演示者是来自Infragistic的XamTextEditor

<Style TargetType="{x:Type igEditors:XamTextEditor}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type igEditors:XamTextEditor}">
        <TextBlock/>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

来自DataTemplate的Setter不起作用。你知道如何设置这个属性吗?

如何在XamTextEditor cudtom样式的Textblock中设置TextTrimming属性?我不能以这种方式执行此操作,因为它用于必须关闭texttrimming的其他datatemplates。所以我试着在DataTemplate中设置它但它不起作用(我在snoop中看到它被设置为none)

不幸的是我无法显示更多代码,因为我无法访问开发人员的互联网并写下更多代码非常耗时:/

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全解决了你的问题。 但是如果使用显式列定义。然后代替CellvaluePresenter尝试创建一个EditorStyle对于任何列类型(我已经为字符串类型列完成了所以编辑器将是XamTextEditor)

<!--(xmlns:igWindows="http://infragistics.com/Windows")-->


<Style TargetType="{x:Type igEditors:XamTextEditor}" x:Key="DefaultXamDateTimeEditor">
  <Style.Resources >
         <Style TargetType="{x:Type igWindows:SimpleTextBlock}" >
                <Setter Property="TextTrimming" Value="CharacterEllipsis" />
         </Style>
   </Style.Resources>
</Style>

并将此样式用作列EditorStyle。它应该在XamDatagrid中工作,因为这对我有用。请发布具体情况如果我没有得到正确的答案。