我的TextBox有自定义错误模板。像这样:
<Style TargetType="{x:Type TextBox}" x:Key="ErrorTemplateStyle">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Vertical">
<Border BorderBrush="Orange" BorderThickness="1">
<AdornedElementPlaceholder />
</Border>
<TextBlock Text="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors).CurrentItem}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我的TextBox放在DataGrid的单元格内。现在发生错误时,我希望更改该单元格的大小以适应我的TextBox的新模板。任何想法如何实现这种行为?
答案 0 :(得分:2)
选项1:在新类或现有类中创建一个属性,该类保存所需的单元格宽度。 (确保类和属性实现INotifyPropertyChanged。)将单元格的宽度绑定到该属性。发生错误时更改属性值,单元格应调整其大小。
选项2:使用网格以外的东西(DockPanel,StackPanel等)。正确安排这些东西将允许容器自动调整大小以适应内容。
选项3:找出使用网格大小属性的方法。设置Width =“Auto”通常允许列调整其内容的大小,但这可能取决于网格中的其他列。