Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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中的单元格行值';属性,但使用该属性获取其他值?_C#_Wpf_Xaml_Datagrid - Fatal编程技术网

C# 从对象设置DataGrid中的单元格行值';属性,但使用该属性获取其他值?

C# 从对象设置DataGrid中的单元格行值';属性,但使用该属性获取其他值?,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我需要获取给定教室的机构名称,并将该名称放入数据网格。这是我到目前为止所拥有的 这是一些全局可用的静态哈希映射,它将存储Institution对象,键是该机构的Id public static Dictionary<int, Transformable> classrooms = null; public static Dictionary<int, Transformable> institutions = null; 我找到了解决办法 我将其添加到我的窗口xam

我需要获取给定
教室的机构名称
,并将该名称放入
数据网格
。这是我到目前为止所拥有的

这是一些全局可用的静态哈希映射,它将存储
Institution
对象,键是该
机构的
Id

 public static Dictionary<int, Transformable> classrooms = null;
 public static Dictionary<int, Transformable> institutions = null;
我找到了解决办法

我将其添加到我的窗口xaml文件中

<Window.Resources>
        <local:TestConverter x:Key="testConverter"></local:TestConverter>

</Window.Resources>
在同一个xaml文件中,我将此文件添加到相应的DataGrid元素中:

<DataGrid.Columns >
    <DataGridTextColumn Header="Classroom number" Binding="{Binding ClassroomNumber}" Width="*"/>
    <DataGridCheckBoxColumn  Header="Active" Binding="{Binding Active}"  Width="*"/>
    <DataGridTextColumn Header="Size" Binding="{Binding Size}"  Width="*"/>
    <DataGridCheckBoxColumn Header="Computers" Binding="{Binding Computers}"  Width="*"/>
    <DataGridTextColumn Header="Institution" Binding="{Binding Path = Institution, Converter={StaticResource testConverter} }"  Width="*"/>

</DataGrid.Columns>

希望这能帮助别人

<Window.Resources>
        <local:TestConverter x:Key="testConverter"></local:TestConverter>

</Window.Resources>
public class TestConverter : IValueConverter
{

            object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {


                Institution inst = (Institution)DataMapper.institutions[(int)value];

                return inst.Name;
            }

            object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                throw new NotImplementedException();
            }
}
<DataGrid.Columns >
    <DataGridTextColumn Header="Classroom number" Binding="{Binding ClassroomNumber}" Width="*"/>
    <DataGridCheckBoxColumn  Header="Active" Binding="{Binding Active}"  Width="*"/>
    <DataGridTextColumn Header="Size" Binding="{Binding Size}"  Width="*"/>
    <DataGridCheckBoxColumn Header="Computers" Binding="{Binding Computers}"  Width="*"/>
    <DataGridTextColumn Header="Institution" Binding="{Binding Path = Institution, Converter={StaticResource testConverter} }"  Width="*"/>

</DataGrid.Columns>