我使用this和this实施了ListBox
。我将29个对象的实际列表绑定到它,它运行良好。
在XAML中:
<ListBox Name="WBauNrList" ItemsSource="{Binding}" Grid.Row="7" Grid.Column="2" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True" Height="100" >
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<CheckBox Content="{Binding Baunr}" IsChecked="{Binding IsChecked,Mode=TwoWay}"/>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
在代码中:
datenpunktList = new ObservableCollection<Datenpunkt>();
foreach (var d in WerkstattList.DistinctBy(p => p.lokNr))
{
var newd = new Datenpunkt() { Baunr = d.lokNr };
datenpunktList.Add(newd);
}
WBauNrList.ItemsSource = datenpunktList;
我想要一个全选CheckBoxes
,以便用户能够选择和取消选择所有项目。它的工作很奇怪!
检查selectAll CheckBox
后,将检查不在滚动条范围内的所有项目(滚动列表),然后我应向下滚动以查看是否已检查所有项目。
XAML:
<CheckBox Name="selectAll" Click="selectAll_Click" >Secelct all</CheckBox>
代码:
private void selectAll_Click(object sender, RoutedEventArgs e)
{
foreach (Datenpunkt item in WBauNrList.Items)
{
item.IsChecked = true ;
}
}
我不知道该怎么做。
提前谢谢,莫
答案 0 :(得分:3)
您的财产IsChecked
实施可能如下所示。
public class Datenpunkt : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void Notify(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private bool _isChecked;
public bool IsChecked
{
get { return _isChecked; }
set
{
_isChecked = value;
Notify("IsChecked");
}
}
}
有关详细信息,请查看MSDN INotifyPropertyChanged页面。