C# WPF MVVM中GridView内的文本框
如何将WPF网格视图中的文本框绑定到视图模型中的属性?我使用的是MVVM模式C# WPF MVVM中GridView内的文本框,c#,asp.net,wpf,gridview,mvvm,C#,Asp.net,Wpf,Gridview,Mvvm,如何将WPF网格视图中的文本框绑定到视图模型中的属性?我使用的是MVVM模式 <ListView Canvas.Left="135" Canvas.Top="185" Height="204" Name="listView1" ItemsSource="{Binding Path=lstSelectedStocks}" Width="436" > <ListView.View> <
<ListView Canvas.Left="135" Canvas.Top="185" Height="204" Name="listView1" ItemsSource="{Binding Path=lstSelectedStocks}" Width="436" >
<ListView.View>
<GridView>
<GridViewColumn Header="SI No." DisplayMemberBinding="{Binding Path=Index}" Width="80"></GridViewColumn>
<GridViewColumn Header="Item ID" DisplayMemberBinding="{Binding Path=Itemname.ItemId}" Width="80"></GridViewColumn>
<GridViewColumn Header="Item Name" DisplayMemberBinding="{Binding Path=Itemname.Name}" Width="120"></GridViewColumn>
<GridViewColumn Header="Quantity" Width="100">
<GridViewColumn.CellTemplate >
<DataTemplate>
<TextBox x:Name="txtQuantity" Width="100" Text="{Binding Path=Qantity, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Purchase Rate" Width="0" DisplayMemberBinding="{Binding Path=PurchasePrice}" ></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
任何人都可以帮忙。您分配给文本属性的绑定路径很好。唯一需要检查Quantity属性的是您作为集合分配给gridview itemssource的类的一部分。我不知道我是否正确理解您的意思(如果没有,请更正),但根据您的评论,我猜您希望向特定项添加数量 如果是这种情况,则item类仍需要一个quantity属性/字段来包含此值,但如果不需要直接设置该数量,则可能需要使用标签之类的内容来显示该属性 您应该将此属性添加到xaml中的列表框中:
SelectedItem="{Binding Path=SelectedItem}"
在viewmodel中,您需要添加与列表中的项目类型相同的名为“SelectedItem”的属性
因此,让我们假设在viewmodel中您有:
public List<Product> lstSelectedStocks
{
// ...
}
现在,在列表框之外添加一个新的文本框:
您的viewmodel中已经有“Qantity”属性,因此这里没有更多工作
在文本框旁边添加一个新按钮
<Button Content="Add Quantity" Command="{Binding Path=AddQuantity}" />
您需要在viewmodel中实现“AddQuantity”命令
要向特定项目添加数量,需要执行以下步骤:
您还需要将“AddQuantity”命令移到内部。通过这种方式,您将始终在该特定项的“Qantity”(或“QuantityToAdd”(如果您重命名它的话)中添加值,并且可能不需要在ListView中使用
SelectedItem=“{Binding Path=SelectedItem}”
。可能有一个更优雅的解决方案,但这正是我现在想到的。请查看用户3206784的答案。“Qantity”酒店位于何处?它是在类make
lstSelectedStocks
列表中,还是在包含ListView的控件的viewmodel中?它应该在类中,而不是在viewmodel中。此“Qantity”属性不在lsSelectedStocks
列表中。数量是一个新属性。我想添加一个特定项目的数量。例如,如何在网格中获取文本框的值,而它不在ItemSource中。我想编辑文本框并输入10之类的值。因此,将值ie,10添加到新表中。谢谢,先生,对于设置为网格视图内部的文本框,有什么解决方案吗。?文本框完全在里面。
public Product SelectedItem
{
// ...
}
<Button Content="Add Quantity" Command="{Binding Path=AddQuantity}" />