簡體   English   中英

DataGridTextColumn中的EditingElementStyle

[英]EditingElementStyle in a DataGridTextColumn

我需要能夠區別於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
    }

謝謝你的幫助

您可以在Style設置Tag屬性:

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

if (t.Tag?.ToString() == "Role")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM