C# 将DataGrid绑定到ObservableCollection<;元组<;bool,string>&燃气轮机;

C# 将DataGrid绑定到ObservableCollection<;元组<;bool,string>&燃气轮机;,c#,wpf,data-binding,C#,Wpf,Data Binding,我想将一个可观测集合绑定到WPF中的数据网格 XAML代码段: <DataGrid Name="AvailableApps" Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="5,30,5,5" ColumnWidth="*" CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False" CanUserSortColumns="Fals

我想将一个
可观测集合
绑定到WPF中的数据网格

XAML代码段:

<DataGrid Name="AvailableApps" Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="5,30,5,5" ColumnWidth="*" CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False" CanUserSortColumns="False" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Application" Binding="{Binding Item2}"/>
            <DataGridCheckBoxColumn Header="Selection" Binding="{Binding Item1}"/>
        </DataGrid.Columns>
</DataGrid>
AvailableApps.ItemsSource = Applications;
AvailableApps.IsReadOnly = false;
AvailableApps.Columns[0].IsReadOnly = true;
当我用这段代码运行应用程序时,我得到一个异常,即双向或单向绑定不能与类型为“System.Tuple`2[System.Boolean,System.String]”的“Item1”的只读属性一起工作

如何使用
ObservableCollection
实现此功能?

元组是不可变的,因此无论是否使用
数据网格
,您都无法设置其
Item1
属性


因此,如果您希望能够更改
DataGrid
中的值,那么应该将源集合的类型从
observedcollection
更改为
observedcollection
,其中
YourClass
是一个具有公共可设置
Item1
属性(或您选择调用它的任何属性)的类.

set
AvailableApps.ItemsSource=应用程序将列设置为只读后:
AvailableApps.Columns[0]。IsReadOnly=true。真的,Tuple不是woth。创建一个自定义类,只需在两个绑定上设置
Mode=OneWay