Я только что столкнулся с этой проблемой с моим CheckBox
связыванием данных. Сценарий:
Когда я инициализирую пользовательский интерфейс (запускаю приложение), CheckBox
не проверяются, хотя свойство, к которому они привязаны, имеет значение true. Когда я нажимаю CheckBox
, для свойства устанавливается значение false, но CheckBox
по-прежнему отображается как непроверенное. Отныне привязка данных работает должным образом, и CheckBox
правильно синхронизируется со свойством привязки.
Вот мой код XAML:
<ItemsControl ItemsSource="{Binding Path=DisplayTypes}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type Presentation:TypeDisplayPair}">
<CheckBox IsChecked="{Binding Display}" Margin="3">
<TextBlock Text="{Binding Type}" Foreground="{Binding Color}" />
</CheckBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
И на мой взгляд модель:
public class TypeDisplayPair : BaseViewModel
{
private bool display;
private readonly Brush color;
public TypeDisplayPair(string type, bool display)
{
Display = display;
Type = type;
color = BrushGenerator.GetRandomSolidColorBrush();
}
public string Type { get; set; }
public bool Display
{
get { return display; }
set
{
display = value;
this.FirePropertyChanged(x => x.Display);
}
}
public Brush Color
{
get { return color; }
}
}
Любые предложения приветствуются, так как я потратил слишком много времени на его отладку и у меня закончились идеи.