Listbox с возможностью редактирования (через смену TextBlock на TextBox)

Нужен ListBox с возможностью редактирования. Здесь был совет реализовать через DataGrid, но выглядит не так как хотелось бы. Разместил на ListBox друг над другом TextBox и TextBlock, по умолчанию виден TextBlock, по клику мышкой видимость сменяется на TextBox.

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Grid Width="280" VerticalAlignment="Center">
                    <TextBox x:Name="tbNameService" Text="{Binding Name}" KeyDown="tbNameService_KeyDown" 
                        Visibility="{Binding IsEditing, Converter={StaticResource VisEditConverter}}" 
                        LostFocus="tbNameService_LostFocus" VerticalAlignment="Center"  
                        Width="270" IsVisibleChanged="tbNameService_IsVisibleChanged"/>
                    <TextBlock Name="tblNameService" Text="{Binding Name}" MouseDown="tblNameService_MouseDown" 
                        Visibility="{Binding IsBlocking, Converter={StaticResource VisBlockConverter}}"
                        VerticalAlignment="Center" Width="270" />
                </Grid>
                <TextBlock Text="{Binding Status}" Foreground="{Binding Color_status}" Width="140"/>
                <TextBlock Text="{Binding Naznachenie}" Width="220"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Данные подтягиваются из класс, видимость тоже из этого же класса через конвертер bool-visibility. В принципе все работает, но есть одна проблема: как сделать так чтобы менялась видимость по клику вне TextBox по любой области окна?


Ответы (0 шт):