Какой стандартный элемент управления WPF мне следует использовать? - PullRequest
0 голосов
/ 31 января 2012

Я пробую презентацию master-detail в моем приложении: когда элемент в списке выбран, его детали отображаются в соседнем элементе управления.

Этот элемент управления будет иметь список измерений, таких как рост, ширина, вес и т. Д. Он также будет иметь небольшую графику, например зеленую или красную точку или изображение среднего размера. Он также будет иметь какой-то форматированный текст.

Какой элемент управления STANDARD WPF следует использовать для хранения всех этих элементов. Я думаю об использовании списка, но мне интересно, есть ли лучшие элементы управления для использования.

Мое главное соображение - это простота кодирования, а затем и эффективность кода. Спасибо.

Ответы [ 2 ]

1 голос
/ 31 января 2012

Вы не хотите использовать список, если у вас нет коллекции похожих предметов, и вы хотите, чтобы один или несколько элементов были «выбраны» в какой-то момент. Похоже, это не то, что вы хотите для деталей.

У вас есть коллекция, которая отображается в вашем основном списке. Вы должны связать SelectedItem в вашем основном списке со свойством в вашей модели представления. Затем вы можете привязать это же свойство к разделу деталей вашего пользовательского интерфейса. При изменении выбора в главном списке пользовательский интерфейс сведений будет автоматически обновляться для отражения изменений.

<ListBox x:Name="masterList" ItemsSource="{Binding MyItems}" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}"></ListBox>
<UserControl x:Name="detailsControl" DataContext="{Binding MySelectedItem}"> </UserControl >
1 голос
/ 31 января 2012

В списке отображается список элементов, которые можно настроить с помощью DataTemplate для внешнего вида. В этом случае вы показываете детали выбранного элемента. На самом деле я бы использовал контейнер, такой как Grid, вложенный в ваш текущий пользовательский интерфейс, и имел бы набор стековых панелей, включая детали выбранного элемента.

 <Grid>
    <StackPanel>
        <StackPanel Orientation="Vertical">
            <TextBlock>Detail1</TextBlock>
            <TextBox></TextBox>
        </StackPanel>
        <StackPanel Orientation="Vertical">
            <TextBlock>Detail2</TextBlock>
            <TextBox></TextBox>
        </StackPanel>
    </StackPanel>
</Grid>

Это только одно предложение, но смысл в том, чтобы использовать контейнер и использовать набор элементов управления в контейнерах - текстовый блок, текстовое поле, флажки (логические данные) и т. Д. ... это позволит вам использовать любой тип элемента управления, необходимый для представления конкретного поля данных выбранного элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...