如何在Datagrid单元格中绑定标签或textBlock?

问题描述 投票:0回答:1

大家好,我希望你们做得很好!

我有一个datagrid的问题,我想把它放在datagrid单元格中,例如:“/ 100”其中'100'是我的数据库中使用实体框架的库存数量,我想这样做,以便用户点击多少他希望在标签/ textBlock之外的文本框中的项目如下:

DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBox materialDesign:HintAssist.Hint="0"/>
                                <TextBlock Text="{Binding ElementName=productQuantityStock}" />
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>

我希望你们明白我想做什么,请注意我的英语不好

c# wpf entity-framework data-binding datagrid
1个回答
0
投票

在代码隐藏中,您需要绑定上下文。上下文将需要属性和字段,以便可以更新值。您还应该使用一种方法来通知视图该属性已更新。

后面的代码看起来像这样。

public class DataContextOfView 
{
    private int _productQuantityStock;
    // Because you'll be working with values of type int you should make it an int
    public int ProductQuantityStock
    {
         get { return _productQuantityStock;}
         set { if(_productQuantityStock != value) 
                { 
                 _productQuantityStock = value
                 // notify that the value of the property has changed.
                 OnPropertyChanged(nameof(ProductQuantityStock));
                }
             }
    }
}

视图中的代码应该具有对该属性的引用

DataGridTemplateColumn.CellTemplate>
     <DataTemplate>
         <StackPanel Orientation="Horizontal">
            <TextBox materialDesign:HintAssist.Hint="0"/>
               <TextBlock Text="{Binding ProductQuantityStock, UpdateSourceTrigger=PropertyChanged}" />
         </StackPanel>
     </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
© www.soinside.com 2019 - 2024. All rights reserved.