Mit WPF habe ich eine ListBox
Steuerung mit einer DataTemplate
drin. Der entsprechende XAML-Code ist unten dargestellt:Inline-Bearbeitung TextBlock in einer ListBox mit Datenvorlage (WPF)
<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, die TextBlock
reagieren auf einen (Doppel-) klicken, das macht es zu einem TextBox
zu tun ist, machen. Der Benutzer kann dann die Beschreibung bearbeiten und auf Zurück oder Fokus drücken, um die Änderung vorzunehmen.
Ich habe versucht, ein TextBox
Element in der gleichen Position wie der Textblock hinzufügen und seine visiblity Collapsed
machen, aber ich weiß nicht, wie TextBox
nach rechts zu navigieren, wenn der Benutzer auf einem TextBlock
geklickt hat. Das heißt, ich weiß, der Benutzer hat auf eine bestimmte TextBlock
, jetzt welcheTextBox
habe ich angezeigt?
Jede Hilfe wäre sehr dankbar,
-Ko9
Als Tipp, anstatt "Pre" -Tags und explizit ausbrechende spitze Klammern zu verwenden, können Sie einfach XAML direkt in den Editor einfügen und den 101010-Button verwenden, um es als Code zu formatieren. – itowlson