c# - 将 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>>
?
解决方案
A是不可变的,因此无论您是否使用 a Tuple<T1, T2>
,您都无法设置其属性。Item1
DataGrid
因此,如果您希望能够DataGrid
更改.ObservableCollection<Tuple<bool, string>>
ObservableCollection<YourClass>
YourClass
Item1
推荐阅读
- git - 为什么 Gitbash 控制台显示我的用户 Chopped 为默认的 Windows 用户名,即使我更改了它?
- mysql - MYSQL 哪一列的值最高
- python - 读取多列url cv文件
- python-3.x - 将百分比变化映射到 Pandas 或 Numpy 中的字符串描述
- perforce - 强制覆盖版本的历史记录?
- ruby-on-rails - 尝试在 Mac 上本地运行 Rails + React 应用程序时,如何修复“端口已在使用”错误?
- flutter - 如何在 DateTimeField Flutter 中删除确定按钮并取消
- nginx - htpasswd 文件和 NGINX
- awk - 如何使用 awk/grep 从文件中搜索存储在变量中的值
- json - 如何处理多种日期格式?火花 - 斯卡拉