Ich habe ein kleines Problem mit einer ListBox und seine Bindung. Alles ist gut, außer wenn ich die Funktion LstExtensionUnSelectAll() aufrufen, weil nichts geändert, die Checkbox erneut überprüft werden.WPF Binding Object
Ich denke, es ist eine dumme Sache, aber ich sehe es nicht.
<ListBox ItemsSource="{Binding LstExtension, Mode=TwoWay}" Grid.Row="0">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<CheckBox Content="{Binding Extension}" IsChecked="{Binding Checked}"/>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Hier ist es die Aufgabe LstExtension:
public class CustomExtensions
{
public string Extension { get; set; }
public bool Checked { get; set; }
public CustomExtensions(string ext)
{
Extension = ext;
Checked = true;
}
}
private List<CustomExtensions> _LstExtension;
public IEnumerable<CustomExtensions> LstExtension
{
get { return _LstExtension; }
set
{
if (value != _LstExtension)
{
_LstExtension = value.ToList();
NotifyPropertyChanged("LstExtension");
}
}
}
internal void LstExtensionUnSelectAll()
{
_LstExtension?.ForEach(c => c.Checked = false);
NotifyPropertyChanged("LstExtension");
}
Warum haben Sie 'NotifyPropertyChanged (" Checked ") nicht hinzugefügt;' in 'Checked' Eigenschaft? – ASh
Als Hinweis ist es sinnvoll, 'Mode = TwoWay 'für die ItemsSource-Bindung zu setzen. – Clemens