0
我有一個ComboBox,其內容是數據綁定到2個依賴項屬性(Foo
和Bar
)的2個項目。 我有一個按鈕,它增加了Foo
和Bar
。 當我按下此按鈕時,我在輸出窗口中看到Foo
和Bar
的確已發生變化。在綁定上設置斷點(僅限SL 5)也證明了這一點。 但ComboBox上顯示的值未更新! 只有當我點擊組合框或通過[TAB]和[DOWN]更改所選項目時,它纔會更新。數據綁定ComboBox在值更改後未立即刷新
我甚至試圖在值更新後在我的ComboBox上調用UpdateLayout()
,但無濟於事。
這是我的代碼供您測試。
後面的代碼:
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
namespace ComboBoxBindingTest
{
public partial class MainPage : UserControl
{
public int Foo
{
get { return (int)GetValue(FooProperty); }
set { SetValue(FooProperty, value); }
}
public static readonly DependencyProperty FooProperty =
DependencyProperty.Register("Foo", typeof(int), typeof(MainPage), new PropertyMetadata(0));
public int Bar
{
get { return (int)GetValue(BarProperty); }
set { SetValue(BarProperty, value); }
}
public static readonly DependencyProperty BarProperty =
DependencyProperty.Register("Bar", typeof(int), typeof(MainPage), new PropertyMetadata(0));
public MainPage()
{
Foo = 0;
Bar = 0;
InitializeComponent();
DataContext = this;
}
private void Step()
{
Foo++;
Bar++;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Step();
Debug.WriteLine("Foo: {0}", Foo);
Debug.WriteLine("Bar: {0}", Bar);
}
}
}
XAML:
<UserControl x:Class="ComboBoxBindingTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="138"
d:DesignWidth="188">
<StackPanel Background="White">
<ComboBox Width="120"
Height="23"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<ComboBoxItem Content="{Binding Foo}"
IsSelected="True" />
<ComboBoxItem Content="{Binding Bar}" />
</ComboBox>
<Button Content="Step"
Width="75"
Height="23"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Click="Button_Click" />
</StackPanel>
</UserControl>
我在做什麼錯了,在這裏?
謝謝您的anwser!明天我會試一試。 – Rodolphe 2011-12-22 19:53:21
對不起,這是一段時間...我現在使用'ObservableCollection'並且一切正常。非常感謝! – Rodolphe 2012-02-03 15:33:06