Как отобразить поле со списком в ListView при связывании? - PullRequest
1 голос
/ 23 декабря 2008

Я отображаю много строк данных в виде списка, который связан со списком пользовательского класса. У пользовательского класса есть свойство с именем type. Количество допустимых типов ограничено, и я бы хотел, чтобы пользователь мог вносить изменения, выбирая из списка. Я попытался добавить комбинированный список в базовый класс, но он не отображался как комбинированный список в представлении списка.

Ответы [ 2 ]

0 голосов
/ 24 декабря 2008

Нашел это в Интернете и, похоже, стал хорошей отправной точкой для начала работы с DataTemplates.

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/749c8e84-3af3-4ec9-90b1-297d684025e7/

<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">

<Window.Resources>

    <XmlDataProvider x:Key="MyData" XPath="/Info">
        <x:XData>
            <Info xmlns="">
                <Item ID="123" Catalog="Category1"/>
                <Item ID="456" Catalog="Category2"/>
                <Item ID="789" Catalog="Category3"/>
            </Info>
        </x:XData>
    </XmlDataProvider>

    <CollectionViewSource x:Key='src' Source="{Binding Source={StaticResource MyData}, XPath=Item}" />

</Window.Resources>

<Grid>

    <ListView Name="mylist" ItemsSource="{Binding Source={StaticResource src}}">

        <ListView.View>

            <GridView>

                <GridViewColumn Header="Catalog" Width="100">

                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox Name="mycombo" SelectedValue="{Binding XPath=@Catalog}">
                                <ComboBoxItem>Category1</ComboBoxItem>
                                <ComboBoxItem>Category2</ComboBoxItem>
                                <ComboBoxItem>Category3</ComboBoxItem>
                            </ComboBox>
                        </DataTemplate>

                    </GridViewColumn.CellTemplate>

                </GridViewColumn>

                <GridViewColumn Header="ID" Width="100" DisplayMemberBinding="{Binding XPath=@ID}" />

            </GridView>

        </ListView.View>

    </ListView>

</Grid>

0 голосов
/ 23 декабря 2008

Вам необходимо использовать DataTemplate.

В Интернете доступно множество учебных пособий.

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