通过数据网格中的其他两个列获取列值

时间:2018-08-19 06:03:28

标签: c# wpf datagrid insert multiple-columns

我想知道如果一列的值乘以另外两列该怎么办

enter image description here

这是我的数据网格图像

<telerik:RadGridView x:Name="DataGridBardashtVajh" SelectionMode="Single"  ClipboardCopyMode="All" ShowGroupPanel="false" CanUserReorderColumns="true"   AutoGenerateColumns="False"  HorizontalAlignment="Left" VerticalAlignment="Top" Height="251" Width="980" Margin="0,609,-1,0" IsReadOnly="True" FlowDirection="RightToLeft" MouseDoubleClick="DatagridEstelam_OnMouseDoubleClick">
            <telerik:RadGridView.Resources>
                <Style TargetType="telerik:GridViewCell" x:Key="textFont">
                    <Setter Property="FontFamily" Value="IRANSans" />
                    <Setter Property="FontSize" Value="14" />
                    <Setter Property="HorizontalContentAlignment" Value="Center" />
                </Style>
            </telerik:RadGridView.Resources>
            <telerik:RadGridView.Columns>
                <telerik:GridViewSelectColumn/>

                <telerik:GridViewDataColumn Header="شماره پرداخت" Width="auto" MinWidth="95"  DataMemberBinding="{Binding ShomarePardakht}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="ناریخ درخواست" Width="auto" MinWidth="95"  DataMemberBinding="{Binding TarikhDarkhastShamsi}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="شماره قرارداد" Width="auto" MinWidth="95"  DataMemberBinding="{Binding ShomareGharardad}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="نام قرارداد" Width="auto" MinWidth="95"  DataMemberBinding="{Binding NameGharardad}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="شرکت خریدار" Width="auto" MinWidth="95"  DataMemberBinding="{Binding SherkatKharidad}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="شرکت فروشنده" Width="auto" MinWidth="95"  DataMemberBinding="{Binding SherkatForoshande}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="نوع پرداخت" Width="auto" MinWidth="95"  DataMemberBinding="{Binding NoePardakht}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="تاریخ پرداخت" Width="auto" MinWidth="95"  DataMemberBinding="{Binding TarikhPardakhtShamsi}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />
                <telerik:GridViewDataColumn Header="شماره سند حسابداری" Width="auto" MinWidth="95"  DataMemberBinding="{Binding ShomareSanadHesabdari}" CellStyle="{StaticResource textFont}"  HeaderTextAlignment="Center" />

            </telerik:RadGridView.Columns>

1 个答案:

答案 0 :(得分:0)

您可以使用 Telerik计算列功能来实现此目的。

在您的xml中;

 <Grid.Resources> 
        <local:CalculatedValueConverter x:Key="calculatedValueConverter"/> 
    </Grid.Resources> 

 <telerik:GridViewDataColumn       
      Header="calculated value"  
      DataMemberBinding="{Binding Path=., Converter={StaticResource 
        calculatedValueConverter}}"> 
</telerik:GridViewDataColumn> 

,您应该创建一个转换器来计算如下所示的值,并在Convert方法中实现所需的计算;

 internal class CalculatedValueConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
        var obj = value as YourObject; 
        if (obj  == null) 
        { 
            throw new ArgumentException("value must be a YourObject", "value"); 
        } 

        return obj.col1 * obj.col2; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
        throw new NotImplementedException(); 
    } 
} 

请点击this链接以获取详细示例。