C# 在代码隐藏中使用Textblox样式从DataGridTextColumn获取文本
我目前正在支持一个项目,我收到一份工作,更改datagridcell上的验证,使他们插入的文本块的输入仅为50个字符 现在,我已经获取了datagrid gotfocus()事件,并检查了每个DataGridTextColumn的标题,如果正确的一个获得了焦点,我将为该列创建一个Key_Down事件 在Key_Down事件中,我希望测试当前字符串的长度,如果长度超过50,我希望文本框不再添加到字符串中。但我的问题是,我没有从DataGridTextColumn获取文本。这是我的密码: XAMLC# 在代码隐藏中使用Textblox样式从DataGridTextColumn获取文本,c#,wpf,datagridtextcolumn,C#,Wpf,Datagridtextcolumn,我目前正在支持一个项目,我收到一份工作,更改datagridcell上的验证,使他们插入的文本块的输入仅为50个字符 现在,我已经获取了datagrid gotfocus()事件,并检查了每个DataGridTextColumn的标题,如果正确的一个获得了焦点,我将为该列创建一个Key_Down事件 在Key_Down事件中,我希望测试当前字符串的长度,如果长度超过50,我希望文本框不再添加到字符串中。但我的问题是,我没有从DataGridTextColumn获取文本。这是我的密码: XAML
<DataGrid Grid.Column="3" GotFocus="transitRouteParticularsGrid_GotFocus" AutoGenerateColumns="False" x:Name="transitRouteParticularsGrid" Grid.ColumnSpan="9" Grid.Row="30" Grid.RowSpan="6" CanUserResizeColumns="False" CanUserSortColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False">
<DataGridTextColumn x:Name="cmbDestination" Header="Destination" EditingElementStyle="{StaticResource errorStyle}" Width="200" Binding="{Binding CustomDestination, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid>
图像
所以我需要知道如何获取我为本专栏输入的文本
任何帮助都会很棒:)
谢谢。您可以使用
DataGridCell.Content
属性获取单元格的可视化树,导航该属性取决于EditingElementStyle=“{StaticResource errorStyle}”中定义的errorStyle模板。
假设它基于TextBox
,下面是获取TextBox的方法
TextBox cellTextbox = (TextBox)griddestination.Content;
现在,您可以使用相同的方法获取文本值或进行操作
仅当单元格处于编辑模式时,上述内容才起作用,否则单元格内容为ElementStyle定义的文本块
为了安全起见,你可以写的和
TextBox cellTextbox = griddestination.Content as TextBox;
if(cellTextbox != null)
{
//your logic
}
TextBox cellTextbox = griddestination.Content as TextBox;
if(cellTextbox != null)
{
//your logic
}