Уровень 4 выбора вводит :has()
(ранее индикатор объекта !
), который позволит вам выбрать предыдущего брата с:
previous:has(+ next) {}
... но в время написания, это некоторое расстояние, выходящее за пределы кровопускания для поддержки браузера.
Я встречался с проблемой, очень похожей на это. После проведения небольшого исследования я нашел подобную проблему перечисленной в MSDN:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c68d5f3c-c8cc-427d-82e3-6135d075a304/
Согласно ответу на сообщение, проблема имеет отношение к WPF и WinForms, имеющему два совсем других способа обработать ввод текста. К счастью, упомянутое выше сообщение дает следующее решение:
При запуске окна, используйте ElementHost. EnableModelessKeyboardInterop (window1). Обратите внимание, что это - статический метод - Вы не должны инстанцировать класса ElementHost.
, Например,
Window window1 = new Window();
ElementHost.EnableModelessKeyboardInterop(window1);
window1.Show();
Это решило проблему для меня. Надежда это помогает.
Я создал простое тестовое приложение, и я могу ввести новый текст в TextBoxes в ListBox:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:app="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">
<ListBox ItemsSource="{Binding Details}"
HorizontalAlignment="Stretch"
VirtualizingStackPanel.VirtualizationMode="Recycling">
<ListBox.Resources>
<DataTemplate DataType="{x:Type app:Data}">
<StackPanel Orientation="Horizontal">
<ComboBox />
<TextBox SpellCheck.IsEnabled="True" TextWrapping="Wrap"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Text="{Binding Path=Text, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</ListBox.Resources>
</ListBox>
</Window>
единственная разница, которую я вижу между этими двумя, - то, что ItemTemplate
установлен на Вашем ListBox, и каждый не находится на моем. Каков XAML для rADetailEntryLayout
?
Очевидно, необходимо добавить элемент ScrollViewer с x: Name = "PART_ContentHost" к элементу Border, см. Примечание по адресу: http://msdn.microsoft.com/en -us / library / ms752068.aspx
Прежде всего, вы заметили, что для вашего предмета не задан шаблон ItemTemplate? во-вторых, почему вы объявили DataTemplate внутри ресурса? вы хотите использовать несколько типов в ItemTemplate? в этом случае вам понадобится DataTemplateSelector, который вернет конкретный DataTemplate для указанного типа, иначе, если вам просто нужно добавить шаблон в этот конкретный элемент, замените ListBox.Resources на ListBox.ItemTemplate и удалите ключ из dataTemplate, скомпилируйте его и готово.
вот как это должно быть для правильной работы:
<ListBox Grid.Column="1" ItemsSource="{Binding Path=Details}" VirtualizingStackPanel.VirtualizationMode="Recycling" HorizontalContentAlignment="Stretch" >
<!-- Remove this <ListBox.Resources> -->
<!-- Add this -->
<ListBox.ItemTemplate>
<!-- Remove this <DataTemplate DataType="{x:Type Entities:RADetailEntry}"> -->
<!-- Add this -->
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" />
<TextBox Grid.Column="1" IsReadOnly="False" IsEnabled="True"
Text="{Binding Path=Description, Mode=TwoWay}" TextWrapping="Wrap"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextAlignment="Left"
/>
</Grid>
</DataTemplate>
<!-- Remove this </ListBox.Resources> -->
<!-- Add this -->
</ListBox.ItemTemplate>
</ListBox>
Надеюсь, это все еще полезно, так как долгое время с момента публикации вопроса ...