Ui не обновляется - PullRequest
       2

Ui не обновляется

2 голосов
/ 10 октября 2010

это мой код:

<Window x:Class="WpfApplication1.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="60*" />
        <RowDefinition Height="202*" />
    </Grid.RowDefinitions>
    <Button Click="Button_Click">Click Me</Button>
    <ListView ItemsSource="{Binding Numbers}" Grid.Row="1">
    </ListView>
</Grid>

 public partial class Window2 : Window {

  public int index =0;
  public ObservableCollection<int> Numbers { get; set; }

  public Window2() {

     Numbers = new ObservableCollection<int>() { index, index, index, index };
     InitializeComponent();
     DataContext = this;
  }

  private void Button_Click(object sender, RoutedEventArgs e) {
     Numbers = new ObservableCollection<int>() { index, index, index, index };
     index++;
  }

}

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Ваш пользовательский интерфейс будет обновлен для изменений внутри коллекции Numbers, но не после создания совершенно новой коллекции.

Либо расширьте класс datacontext для поддержки INotifyPropertyChanged (особенно для чисел), либо не создавайте заново Numbers.

0 голосов
/ 10 октября 2010

Вы можете сделать коллекцию Numbers DependencyProperty следующим образом (не проверено):

public static readonly DependencyProperty NumbersProperty = DependencyProperty.Register("Numbers", typeof(ObservableCollection<int>), typeof(Window2));

public ObservableCollection<int> Numbers
{
    get{ return this.GetValue(NumbersProperty) as ObservableCollection<int>; }
    set{ this.SetValue(NumbersProperty, value); }
}

Затем обновление ссылки на коллекцию изменит пользовательский интерфейс.

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