Я не могу получить проверенный ListBox
для работы.
Мой бизнес-объект (это частный / вложенный класс, следовательно, в нижнем регистре)
class shop : System.ComponentModel.INotifyPropertyChanged
{
internal int id;
string _name;
internal string name
{
get { return _name; }
set
{
_name = value;
if (PropertyChanged != null) PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs("name"));
}
}
bool _selected;
internal bool selected
{
get { return _selected; }
set
{
_selected = value;
if (PropertyChanged != null) PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs("selected"));
}
}
}
Мой XAML:
<ListBox ItemsSource="{Binding}" Grid.Row="1" HorizontalAlignment="Stretch" Margin="10,0,10,0" Name="lbSelectedShops" VerticalAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Width="Auto" Content="{Binding Path=name}" IsChecked="{Binding Path=selected, Mode=TwoWay}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Привязка данных в коде очень проста:
lbSelectedShops.ItemsSource = _shops;
, где _shops
- это ObservableCollection<shop>
(содержащий два элемента).
Что яget - это два пустых флажка в списке (без заголовков, и оба сняты, даже если для selected
установлено значение true
для всех элементов в ItemsSource
).
Я уже очень расстроен и уверен, что это должно быть что-то очень тривиальное.Что здесь не так?