C# WPF DataGrid-遍历行并访问模板列中的控件
我来自ASP.NET的背景,我一直负责维护一个WPF项目,所以这是一个相当好的学习过程 我有一个带有以下XAML的DataGridC# WPF DataGrid-遍历行并访问模板列中的控件,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我来自ASP.NET的背景,我一直负责维护一个WPF项目,所以这是一个相当好的学习过程 我有一个带有以下XAML的DataGrid <DataGrid Name="StockGV" AutoGenerateColumns="False" IsReadOnly="True"> <DataGrid.Columns> <DataGridTemplateColumn Header="Scanned" IsReadOnly="true"
<DataGrid Name="StockGV" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Scanned" IsReadOnly="true">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Name="StatusImage" Source="tick.png"></Image>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PalletScanned}" Value="False">
<Setter TargetName="StatusImage" Property="Source" Value="cross.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Pallet Number" IsReadOnly="True" Binding="{Binding PalletNumber}">
</DataGridTextColumn>
<DataGridTextColumn Header="Quantity" IsReadOnly="True" Binding="{Binding Quantity}">
</DataGridTextColumn>
<DataGridTemplateColumn IsReadOnly="true">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<xctk:IntegerUpDown HorizontalAlignment="Left" Name="integerUpDown1" Maximum="{Binding Quantity}" Minimum="0" VerticalAlignment="Top" Value="{Binding Quantity, Mode=OneWay}" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding PalletScanned}" Value="False">
<Setter TargetName="integerUpDown1" Property="IsEnabled" Value="False"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
在WPF中我将如何执行此操作?注意:如果有帮助,DataGrid将绑定到一个匿名类型,该类型与它的本意不同:) 通常应将
数据网格
绑定到类型为T的项源
。在列中,应绑定到类型为T的属性
IntegerUpDown控件上的每个更改都会在基础集合中表示
要在以后的视图模型中访问此值
,只需使用Linq查询集合
,即可获得值
您已经控制了以下代码:
Value="{Binding Quantity, Mode=OneWay}"
因此,您可以访问Quantity属性以获取所需的值
记住:
如果用户应该能够更改数量属性
,绑定
必须是模式=双向
,并且该属性也需要有一个公共设置器。哇,这与它的本意不同:)
通常应将数据网格
绑定到类型为T的项源
。在列中,应绑定到类型为T的属性
IntegerUpDown控件上的每个更改都会在基础集合中表示
要在以后的视图模型中访问此值
,只需使用Linq查询集合
,即可获得值
您已经控制了以下代码:
Value="{Binding Quantity, Mode=OneWay}"
因此,您可以访问Quantity属性以获取所需的值
记住:
如果用户应该能够更改Quantity属性
,绑定
必须是模式=双向
,并且该属性也需要一个公共设置器。不要忘记INotifyPropertyChanged。是的,谢谢。我完全忘记提了!:)别忘了InotifyProperty的改变。是的,谢谢你。我完全忘记提了!:)