Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > получение информации о колонках в ListView


Автор: drdoom 19.11.2008, 20:13
Здравствуйте гуру и покорители WPF
У меня следующая проблема
есть формочка заданная следующим видом
Код

<Window x:Class="Maria.Test.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
    Title="Window1" Height="{Binding Height, Mode=TwoWay}" Width="{Binding Width, Mode=TwoWay}" 
        Closed="Window_Closed">
    <Grid x:Name="grid">
        <Grid.RowDefinitions>
            <RowDefinition Height="{Binding SplitterPosition, Mode=TwoWay}" />
            <RowDefinition Height="100*" />
        </Grid.RowDefinitions>

        <StackPanel Orientation="Vertical" Grid.Row="0">
            <TextBlock Text="Тут будет фильтр" />
            <TextBox Text="{Binding Height}"/>
            <TextBox Text="{Binding Width}"/>
            <TextBox Text="{Binding NameWidth}"/>
            <TextBox Text="{Binding PriceWidth}"/>
            <TextBox Text="{Binding QtyWidth}"/>
            <TextBox Text="{Binding SumWidth}"/>
            <TextBox Text="{Binding SplitterPosition}"/>
            <Button Height="23" Name="button1" Click="button1_Click">Button</Button>
        </StackPanel>
        <ListView Name="lw" Grid.Row="1" ItemsSource="{Binding Data}" diag:PresentationTraceSources.TraceLevel="High">

            <ListView.View>

                <GridView AllowsColumnReorder="true" >

                    <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=Name}" 
                      Header="Наименование" Width="{Binding NameWidth, Mode=TwoWay}"/>
                    <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=Price}" 
                      Header="Цена" Width="{Binding PriceWidth, Mode=TwoWay}"/>
                    <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=Qty}" 
                      Header="Кол-во" Width="{Binding QtyWidth, Mode=TwoWay}"/>
                    <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=Sum}" 
                      Header="Сумма" Width="{Binding SumWidth, Mode=TwoWay}"/>
                </GridView>

            </ListView.View>
        </ListView>

        <GridSplitter Grid.Row ="0" Background="Blue" Height="3" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" ResizeDirection="Rows"/>
    </Grid>
</Window>

так вот мне из кода на кнопку button1 надо узнать количество столбцов в ListView
по идее там у листвью есть свойство Column. Но когда я в обработчике пытаюсь его вызвать, его там не находится, я и думаю может я неправильно как то накатал саму форму

Автор: rooks 20.11.2008, 00:31
Количество столбцов нужно искать в GridView. У него есть свойство Columns, которое возвращает коллекцию столбцов.

Автор: drdoom 1.12.2008, 11:51
Пасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)