2013-05-03 78 views
0

我正在創建一個將ObservableCollection連接到ListBox的簡單程序。我寫道:WPF - Observable集合綁定錯誤

public ObservableCollection<int> Values { get; set; } 

public MainWindow() 
{ 
    InitializeComponent(); 
    Values = new ObservableCollection<int>(); 
    Values.Add(1); 
    DataContext = this; 
} 

然後我創建按鈕,並寫道:

public Button1_Clicke(object sender, RoutedEventArgs e) 
{ 
    Values.Add(2); 
} 

XMAL:

<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/> 

當窗口我能看到開幕'1'值。 但是,當我點擊按鈕,列表框劑量更新項目。哪裏不對?

+0

這應該工作。使用Values.Count添加消息框到點擊事件 – Paparazzi 2013-05-03 20:13:41

+0

大小越來越大,但列表框不更新 – user2348001 2013-05-04 09:03:21

+0

如果您需要幫助,您將需要發佈所有代碼。這應該工作。 – Paparazzi 2013-05-05 20:25:43

回答

2

你可以試試這個:

<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/> 

編輯: 我已經作出如下一個簡單的示例:

<Window x:Class="WpfApplication1.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"> 
    <StackPanel> 

     <ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/> 
     <Button Click="Button_Click" Content="Test"></Button> 
    </StackPanel> 

</Window> 

後面的代碼(Window1.xaml.cs)

using System.Collections.ObjectModel; 

/// <summary> 
/// Interaction logic for Window1.xaml 
/// </summary> 
public partial class Window1 : Window 
{ 
    public ObservableCollection<int> Values { get; set; } 

    public Window1() 
    { 
     InitializeComponent(); 

     Values = new ObservableCollection<int>(); 
     Values.Add(1); 
     DataContext = this; 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     Values.Add(2); 
    } 
} 

它按預期工作。所以根據你的意見,下面爲什麼你不嘗試刪除所有的轉換器,以確保它的正確與否。

+0

對不起,錯誤的列表框:P – user2348001 2013-05-03 18:39:17

+0

那麼,你確定按鈕點擊調用正確的事件,你已經發布在這裏? – 2013-05-03 18:41:22

+0

是的,我確定。 – user2348001 2013-05-03 18:43:08