EditingElementStyle в DataGridTextColumn - PullRequest
       1

EditingElementStyle в DataGridTextColumn

0 голосов
/ 25 сентября 2018

Мне нужно иметь возможность отличить, какой столбец в DataGrid, TextBox был отредактирован:

<DataGridTextColumn Header="No" Binding="{Binding NumberOfItems}">
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="{x:Type TextBox}"  x:Name="NumOfItems">   
            <Setter Property="MaxLength" Value="2"/>
         </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

<DataGridTextColumn Header="Role" Binding="{Binding Role}" Width="0.75*">
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="{x:Type TextBox}"  x:Name="Role">
            <Setter Property="MaxLength" Value="30"/>
         </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

, чтобы я мог обновить базу данных с правильной информацией.Я пытался использовать x:Name, но с кодом ниже имя всегда пусто

private void dgItems_CellEditEnding(object sender, 
DataGridCellEditEndingEventArgs e)
    {
        if(e.EditingElement is TextBox)
        {
             TextBox t = e.EditingElement as TextBox;
             ..........
             if (t.Name == "Role")
             //do this
             else if (t.NumOfItems)
             //do this
    }

Спасибо за любую помощь

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете установить свойство Tag в Style:

<Style TargetType="{x:Type TextBox}">
    <Setter Property="MaxLength" Value="30"/>
    <Setter Property="Tag" Value="Role"/>
</Style>

if (t.Tag?.ToString() == "Role")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...