如何在Datagrid Cell中对标签或textBlock进行数据绑定?

时间:2019-04-25 17:29:31

标签: c# wpf entity-framework data-binding datagrid

大家好,我希望你们一切都好!

我对数据网格有问题,我想将其放在数据网格单元中:例如“ / 100”,其中“ 100”是使用实体框架在数据库中的存货数量,我想这样做,以便用户在标签/文本块之外的文本框中点击他想要的项目数,如下所示:

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

希望大家能理解我的意思,请注意我的英语不好

1 个答案:

答案 0 :(得分: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>