【发布时间】:2016-09-12 22:48:53
【问题描述】:
我有一个ListView,其中每个项目都是CheckBox,后跟Nameproperty。
<ListView Name="ShapesList"
SelectionChanged="ShapesList_OnSelectionChanged"
Grid.Row="2" Grid.Column="0"
ItemsSource="{Binding ChartViewModel.OidList}"
Margin="15,0,10,10"
SelectionMode="Multiple">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Style="{DynamicResource BigCheckbox}"
IsChecked="{Binding Path=IsSelected3, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Mode=TwoWay}"
Content="{Binding Path=Name, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"
Checked="RoiChecked" Unchecked="RoiUnchecked"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="ROI" DisplayMemberBinding="{Binding Name}" />
</GridView.Columns>
</GridView>
</ListView.View>
其中IsSelected3 是继承INotifyPropertyChanged 的类的属性。
public bool IsSelected3
{
get { return _isSelected3; }
set
{
_isSelected3 = value;
FirePropertyChanged("IsSelected3");
}
}
问题在于 IsChecked 绑定不起作用,而带有 Name 的绑定不起作用。
你有什么想法吗? 谢谢!
【问题讨论】:
-
它属于哪个类?如果它是 ChartViewModel.OldList 中包含的事物的属性,则使用
IsChecked="{Binding IsSelected3}"。您的Name绑定有效吗?