Inline-editing TextBlock in eine ListBox mit Daten-Vorlage (WPF)

Verwendung von WPF, ich habe eine ListBox Kontrolle mit einem DataTemplate drin. Die entsprechenden XAML-code ist unten dargestellt:

<ListBox Name="_todoList" Grid.Row="1" BorderThickness="2"
     Drop="todoList_Drop" AllowDrop="True"
     HorizontalContentAlignment="Stretch"
     ScrollViewer.HorizontalScrollBarVisibility="Disabled"                 
     AlternationCount="2">
     <ListBox.ItemTemplate>
         <DataTemplate>
             <Grid Margin="4">
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="Auto" />
                     <ColumnDefinition Width="*" />
                 </Grid.ColumnDefinitions>
                 <CheckBox Grid.Column="0" Checked="CheckBox_Check" />
                 <TextBlock Name="descriptionBlock"
                            Grid.Column="1"
                            Text="{Binding Description}"
                            Cursor="Hand" FontSize="14"
                            ToolTip="{Binding Description}"
                            MouseDown="TextBlock_MouseDown" />                      
             </Grid>
         </DataTemplate>
     </ListBox.ItemTemplate>
</ListBox>

Was ich versuche zu tun ist, machen die TextBlock reagieren auf eine (Doppel -) klicken Sie auf die wandelt es in eine TextBox. Der Benutzer kann dann Bearbeiten Sie die Beschreibung, und drücken Sie die EINGABETASTE oder den Fokus ändern, um die änderung vorzunehmen.

Ich habe versucht, das hinzufügen einer TextBox element in der gleichen position wie der TextBlock und seine Sichtbarkeit Collapsed, aber ich weiß nicht, wie Sie navigieren, um die richtige TextBox wenn der Benutzer geklickt hat, auf eine TextBlock. Das heißt, ich weiß der Benutzer geklickt hat, auf eine bestimmte TextBlock jetzt die TextBox muss ich zeigen?

Jede Hilfe würde geschätzt werden, stark,

-Ko9

  • Als tip, anstatt pre tags und explizit die Flucht Spitzen Klammern, können Sie einfach fügen Sie der XAML direkt in den editor, und verwenden Sie die 101010-Taste, um format als code.
InformationsquelleAutor Ko9 | 2010-01-18
Schreibe einen Kommentar