我在其中制作了一个带有复选框的列表框。列表框绑定到我的Checkbox类的List。现在我想在检查/取消选中复选框时从我的DataContext而不是我的Checkbox类调用命令
<ListBox Grid.Column="1" ItemsSource="{Binding Databases}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked, Mode=TwoWay}" Margin="5 5 0 0" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
CheckBox类:
public class CheckBoxDatabase
{
private string name;
protected bool isChecked;
public ObservableCollection<CheckBoxDatabase> Owner;
public bool IsChecked
{
get { return isChecked; }
set
{
setzeChecked(value);
NotifyPropertyChanged();
}
}
public virtual void setzeChecked(bool value)
{
isChecked = value;
}
public string Name
{
get { return name; }
set
{
name = value;
NotifyPropertyChanged();
}
}
#region NotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
我的主要问题是如果我添加一个命令,它告诉我它在类中找不到(当然因为我希望它在我的datacontext类中调用它,我有一个relaycommand。(还有另一个relay命令)独立于所有这些工作,我完全相同)
答案 0 :(得分:0)
如果要绑定到定义了> SO_45668510.cmd
Version number 12345678.01
pass=12345678.01
pass=1234567802
pass=12345678.02
源集合的类的ICommand
属性,可以使用Databases
:
RelativeSource
将<CheckBox Content="{Binding Name}" Command="{Binding DataContext.YourCommandProperty, RelativeSource={RelativeSource AncestorType=ListBox}}" Margin="5 5 0 0" />
替换为您的财产的实际名称。