我正在尝试从DataGrid删除整个列。我的DataGrid项目源绑定到一个数据表。当我从DataTable中删除该列时,DataGrid中的行内容消失了,但标题和空白框都保留了。
我尝试在我的视图模型中添加一个DataGrid并将其绑定到该DataGrid,但是它似乎没有任何效果,并且我的代码变得非常难看。我能够添加一个按钮以使用以下代码将其删除:
<E> void foo(List<E> something)
但这似乎不是正确的方法,我希望它与视图模型捆绑在一起以进行错误检查等。看来DataTable和DataGrid可能无法在2个不同位置进行同步删除。
我的Datagrid Xaml:
TestDG.Columns.RemoveAt(idNum);
我的视图模型中的代码
<DataGrid x:Name="dataGrid" ItemsSource="{Binding DTLines}" CanUserAddRows="False" ColumnWidth="*">
</DataGrid>
如果您还有其他需要澄清的地方,请告诉我。
答案 0 :(得分:0)
视图模型对视图中的DataGrid
中的某些列一无所知。视图或控件本身应该负责在DataGrid
中添加或删除列。
因此,当从DataTable
中删除一列时,您的视图模型应该通知该视图,然后视图应从DataGrid
中删除该列以响应此操作。我想这大概是您目前正在做的事情。
不要尝试从视图模型中引用DataGrid
本身。修改DataTable
时引发一个事件,并在视图中处理该事件。