Я не уверен, возможно ли это на самом деле, поэтому, хотя я сомневаюсь и жду ответа от других, я бы порекомендовал другой подход.
Для этого можно использовать прикрепленное поведение, которое являетсяпростой и аккуратный подход, дающий намного более чистый код.
Я написал об этом на моем блоге , и опубликовал для этого фреймворк, это доступно на NuGet .
Что вам нужно для ListBox
, это SelectorExtension
.Если вам нужен только код, смотрите не далее, чем здесь: SelectorExtension.cs .(Источник имеет лицензию MIT)
Это означает, что вы можете просто изменить свой код на следующее:
<ListBox ext:SelectorExtension.Command="{Binding Source={StaticResource Locator}, Path=ViewModel.Command}"
Grid.Row="1"
Height="Auto"
ItemsSource="{Binding Path=ListItems}"
ItemContainerStyle="{StaticResource StretchedItemContainerStyle}"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
Background="Transparent">
...
, где ext
означает xmlns:ext="clr-namespace:ToolkitExtensions;clr-assembly=ToolkitExtensions"