Я пытаюсь связать флажок и просмотр списка вместе, а затем с помощью метода привязки установить путь к объекту, чтобы установить состояние флажка IsChecked в списке.
List<Test1> datas = new List<Test1>();
var data = new Test1 {Key = 1, Value = "Hello", IsSelected= true};
datas.Add(data);
data = new Test1 {Key = 2, Value = "Hello2", IsSelected= false};
datas.Add(data);
Что мне нужно сделать, так это то, что если флажок установлен (IsSelected true), то мне нужно заполнить эти значения, а затем, когда я нажимаю и снимаю флажок в графическом интерфейсе, он мне также нужен, чтобы выбрать нужный элемент списка так что я могу добраться до свойства тега.
Этот код ниже не устанавливает флажок IsChecked.
<ListBox ItemsSource="{Binding}" Name="lstSwimLane" Width="225" Height="125" SelectionChanged="lstSwimLane_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsSelected, Mode=TwoWay}"
Checked="CheckBox_Checked"
Unchecked="CheckBox_Unchecked" />
<TextBlock Text="{Binding Path=Value}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Что мне нужно изменить, чтобы установить флажок для значения в объекте? Я даже попробовал INotifyChange и т.д ...
Вот и объект.
public class Test1 : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private bool _isChecked;
public int Key { get; set; }
public string Value { get; set; }
public bool IsSelected
{
get { return _isChecked; }
set
{
if(_isChecked != value)
{
_isChecked = value;
OnPropertyChanged("IsSelected");
}
}
}
protected void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
Я новичок во всем этом wpf, и я в тупике.
Спасибо.