none
Не получается заполнить ListView RRS feed

  • Вопрос

  • Делаю так:

    <Grid Width="146">

            <ListView ItemsSource="{Binding ElementName=quotesWindow, Path=Quotes}" Background="White">

                <ListView.View>

                    <GridView>

                        <GridViewColumn Width="100" Header="Цена" DisplayMemberBinding="{Binding Path=Price}" />

                    </GridView>

                </ListView.View>

            </ListView>

            <Button Height="23" Margin="35,179,36,0" Name="button1" VerticalAlignment="Top">Button</Button>

        </Grid>

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public partial class Window1 : Window

        {

            public ObservableCollection<SampleQuote> Quotes { get; private set; }

     

            public Window1()

            {

     

                this.Quotes = new ObservableCollection<SampleQuote>();

                InitializeComponent();

            }

     

            private void button1_Click(object sender, RoutedEventArgs e)

            {

                int x = 87;

               Quotes.Add( new SampleQuote(x));

            }

        }

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public class SampleQuote

        {

            public SampleQuote(int quote)

            {

                this.Price = quote;            

            }

     

            public double Price { get;private set; }

        }

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    но при нажатии на кнопку ни чего не происходит.. где я ошибся?

    18 октября 2010 г. 20:51

Ответы

  • XAML:

    <Window x:Class="CheeBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
      <Grid>
        <ListView ItemsSource="{Binding}" Background="White" x:Name="lst">
          <ListView.View>
            <GridView>
              <GridViewColumn Width="100" Header="Цена" DisplayMemberBinding="{Binding Path=Price}" />
            </GridView>
          </ListView.View>
        </ListView>
        <Button Height="23" Margin="35,179,36,0" Name="button1" VerticalAlignment="Top" Click="button1_Click">Button</Button>
      </Grid>
    </Window>
    
    

    Code:

    namespace CheeBinding
    {
      /// <summary>
      /// Interaction logic for MainWindow.xaml
      /// </summary>
      public partial class MainWindow : Window
      {
        public ObservableCollection<SampleQuote> Quotes { get; private set; }
        public MainWindow()
        {
          InitializeComponent();
          this.Quotes = new ObservableCollection<SampleQuote>();      
          this.lst.ItemsSource = this.Quotes;
        }
    
        private void button1_Click(object sender, RoutedEventArgs e)
        {
          this.Quotes.Add(new SampleQuote(1234));
        }
      }
    
      public class SampleQuote
      {
        public SampleQuote(int quote)
        {
          this.Price = quote;
        }
        public double Price { get; private set; }
      }
    }
    
    

    Появляется...

     

     

     

    • Помечено в качестве ответа CheeGer 19 октября 2010 г. 13:13
    19 октября 2010 г. 11:41
    Модератор

Все ответы

  • XAML разметку ListView меняем на

     <ListView ItemsSource="{Binding}" Background="White" x:Name="lst">
    
    В конструкторе формы задаем итемсоурс:

          InitializeComponent();
          this.Quotes = new ObservableCollection<SampleQuote>();      
          this.lst.ItemsSource = this.Quotes;
    

    19 октября 2010 г. 4:38
    Модератор
  • Исправил.. но новая строка всё равно не появляется.. может ещё где ошибка?
    19 октября 2010 г. 11:31
  • XAML:

    <Window x:Class="CheeBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
      <Grid>
        <ListView ItemsSource="{Binding}" Background="White" x:Name="lst">
          <ListView.View>
            <GridView>
              <GridViewColumn Width="100" Header="Цена" DisplayMemberBinding="{Binding Path=Price}" />
            </GridView>
          </ListView.View>
        </ListView>
        <Button Height="23" Margin="35,179,36,0" Name="button1" VerticalAlignment="Top" Click="button1_Click">Button</Button>
      </Grid>
    </Window>
    
    

    Code:

    namespace CheeBinding
    {
      /// <summary>
      /// Interaction logic for MainWindow.xaml
      /// </summary>
      public partial class MainWindow : Window
      {
        public ObservableCollection<SampleQuote> Quotes { get; private set; }
        public MainWindow()
        {
          InitializeComponent();
          this.Quotes = new ObservableCollection<SampleQuote>();      
          this.lst.ItemsSource = this.Quotes;
        }
    
        private void button1_Click(object sender, RoutedEventArgs e)
        {
          this.Quotes.Add(new SampleQuote(1234));
        }
      }
    
      public class SampleQuote
      {
        public SampleQuote(int quote)
        {
          this.Price = quote;
        }
        public double Price { get; private set; }
      }
    }
    
    

    Появляется...

     

     

     

    • Помечено в качестве ответа CheeGer 19 октября 2010 г. 13:13
    19 октября 2010 г. 11:41
    Модератор
  • Спасибо за помощь.. дело было в Click="button1_Click".. забыл прописать)
    19 октября 2010 г. 13:15