>,c#,wpf,data-binding"/>

首页 > 解决方案 > 将 DataGrid 绑定到 ObservableCollection>

问题描述

我想将一个绑定ObservableCollection<Tuple<bool, string>>到 WPF 中的 DataGrid。

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>

C#-代码片段:

AvailableApps.ItemsSource = Applications;
AvailableApps.IsReadOnly = false;
AvailableApps.Columns[0].IsReadOnly = true;

当我使用此代码运行应用程序时,我收到一个异常,指出 TwoWay 或 OneWay 绑定不适用于“System.Tuple`2[System.Boolean,System.String]”类型的“Item1”的只读属性.

我怎样才能使这个工作ObservableCollection<Tuple<bool, string>>

标签: c#wpfdata-binding

解决方案


A是不可变的,因此无论您是否使用 a Tuple<T1, T2>,您都无法设置其属性。Item1DataGrid

因此,如果您希望能够DataGrid更改.ObservableCollection<Tuple<bool, string>>ObservableCollection<YourClass>YourClassItem1


推荐阅读