확인란과 listview를 함께 연결하려고 시도하고 바인딩 방법을 사용하여 개체의 경로를 설정하여 목록 상자에서 확인란의 IsChecked 상태를 설정합니다. 내가 일어날 필요가있는 무엇wpf listbox 확인란 조합, 정말 붙어
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) 선택되어 있다면 클릭하고 나는 또한 선택을 필요로하는 GUI의 체크 박스를 해제합니다 때 다음 그 값을 채우고 필요가있다 태그 속성으로 이동할 수 있도록 적절한 listeview 항목.
아래의이 코드는 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에 익숙하지 않다.
감사합니다.
문제를 해결할 때 행운이 있습니까? 나는 당신의 질문을 정확하게 이해 했습니까? 내가 뭔가를 명확히해야하는지 알려주지 –
아직도 붙어있다. – nitefrog