如何修改在Cell Header中定义的按钮实例?
本文关键字:定义 按钮 实例 Header Cell 何修改 修改 | 更新日期: 2023-09-27 18:03:02
我有以下XAML类:
<ListView Controls:ListViewColumns.Stretch="true"
Name="myListItems" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Width="50">
<GridViewColumn.Header>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Name="btnDelete"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Padding="0"
Margin="0"
IsEnabled="{Binding Converter={StaticResource inverseBoolConverter},
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type WO:OpCompTab}}, Path=DisableAll}"
Click="btnDelete_Click" Tag="{Binding Path=.}">
<Image Source="/Win7;component/Images/Icons/Remove.png"
Width="{StaticResource IconWidth}"
Height="{StaticResource IconHeight}" />
</Button>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
listview通过将一个可观察对象集合连接到它的ItemSource属性来填充。这会为可观察集合中的每个项生成一个整洁的Delete按钮列。
但这提出了一个困境:我如何访问单个行ListView的"btnDelete"?我想在每行的基础上改变它的图标。是否只是将可观察集合以某种方式绑定到单元模板的问题?
而不是硬编码图像。源,将其绑定到行对象中的属性。另一种方法是创建一个值转换器,并传入行或某些属性,如果你不能或不想修改行对象来添加ImageSource属性。让值转换器根据传入的属性或其他逻辑返回正确的图像源。