0

Хочу сделать Total Commander. Для большей гибкости хочу чтобы списки с файлами было любое количество. Для этого решил сделать список из фреймов.

<ListBox Grid.Row="1" Grid.ColumnSpan="2" ItemsSource="{Binding Frames}">
<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
    <DataTemplate>
        <Frame DataContext="{Binding Path=Context}" 
                Source="/TotalCommander;component/View/FileBrowser.xaml"/>
    </DataTemplate>
</ListBox.ItemTemplate>

Но ничего не вышло. введите сюда описание изображения

Если в качестве содержимого DataTemplate сделать содержимое фрейма

<ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate>
                ... тело фрейма Grid и т.д.
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox> 

Получается рванье которое на которое можно только смотреть. Ничего нельзя нажимать. введите сюда описание изображения Подскажите как быть.

  • 2
    В WPF элемент Frame - весьма специфический и предназначен немного для других целей. Вам лучше вынести все, что нужно по своему UserControl и в последующем использовать их. Если хотите к примеру одному элементу сделать разный вид (другой UserControl), то задайте DataTemplate, а если хотите сделать что то по типу страниц, то сделайте свойство, которое будет содержать текущий VM и его привяжите к ContentPresenter (пример). В общем, отказывайтесь от Frame, мой вам совет... – EvgeniyZ Sep 23 '18 at 15:59
  • @EvgeniyZ Сделал через UserControl, но элементы не реагируют на нажатия. Думаю это из-за того что они в ListBox. Может подскажете как решить эту проблему. – лалала лала Sep 23 '18 at 17:02
  • Попробуйте использовать просто ItemsControl, ListBox тут избыточен. – EvgeniyZ Sep 23 '18 at 17:08
  • @EvgeniyZ С ItemsControl проблема осталась :( – лалала лала Sep 23 '18 at 17:18
  • Давайте тогда минимальный, самодостаточный и воспроизводимый пример, будем разбираться. Так, я без понятия что и какие нажатия у вас там не работают... – EvgeniyZ Sep 23 '18 at 18:53
  • @EvgeniyZ Извините за потраченное время. Проблема была в TextBlock который имел те же координаты в Grid и из-за этого ничего не работало. Час убил на эту мелочь. – лалала лала Sep 23 '18 at 19:16

0 Answers0