Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 定义DataGrid';在XAML中声明性地存储行_C#_Xaml_Datagrid - Fatal编程技术网

C# 定义DataGrid';在XAML中声明性地存储行

C# 定义DataGrid';在XAML中声明性地存储行,c#,xaml,datagrid,C#,Xaml,Datagrid,我有这段代码,我需要将行中的第二个和第三个单元格绑定到不同的属性。对不起,我的英语不好 <DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Name="measureDataGrid" VerticalAlignment="Stretch"> <DataGrid.Columns>

我有这段代码,我需要将行中的第二个和第三个单元格绑定到不同的属性。对不起,我的英语不好

<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Name="measureDataGrid" VerticalAlignment="Stretch">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn x:Name="measureName" Header="Наименование" Width="*" />
                                            <DataGridTextColumn x:Name="measureValue" Header="Значение" Width="Auto" />
                                            <DataGridTextColumn x:Name="measureDestValue" Header="Потенциальное значение" Width="Auto" />
                                        </DataGrid.Columns>
                                        <DataGrid.Items>
                                            <!--<DataGridRow>-->
                                            <RowDefinition/>
                                            <RowDefinition/>
                                            <RowDefinition/>                                                           
                                        </DataGrid.Items>                                   
                                    </DataGrid>

因此,如果需要转换值(这可用于在同一列中为不同行显示不同的值),可以使用ValueConverter

创建一个实现IValueConverter的类,如下所示:

public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture)
{
   bool boolValue = (bool)value;

   if(boolValue)
    return x;
   else
    return y;

}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    throw new NotImplementedException();
}
<DataGridTextColumn Header="measureRow1" DataMemberBinding="{Binding ValueThatWouldDetermineWhatToShow, Converter={StaticResource MeasureConverter}}" />
<DataGridTextColumn Header="measureRow2" DataMemberBinding="{Binding ValueThatWouldDetermineWhatToShow, Converter={StaticResource MeasureConverter}}" />
在xaml中创建对它的引用:

<converters: MeasureConverter x:Key="MeasureConverter" />

并在DataGridTextColumn中使用如下内容:

public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture)
{
   bool boolValue = (bool)value;

   if(boolValue)
    return x;
   else
    return y;

}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    throw new NotImplementedException();
}
<DataGridTextColumn Header="measureRow1" DataMemberBinding="{Binding ValueThatWouldDetermineWhatToShow, Converter={StaticResource MeasureConverter}}" />
<DataGridTextColumn Header="measureRow2" DataMemberBinding="{Binding ValueThatWouldDetermineWhatToShow, Converter={StaticResource MeasureConverter}}" />


为什么不使用具有3列和3行的网格?与破解
DataGrid
相比,它要简单得多。你是说你有一列..比如说第2列需要根据行绑定到不同的值吗?第1行绑定到x第2行绑定到y?如果是这种情况,您可以使用转换器