c# - 隐藏/显示 GridViewColumn
问题描述
默认情况下,我想隐藏一个 GridViewColumn,然后在视图模型确定的某些情况下,显示它。现在,我直接将列宽绑定到视图模型。
<ListView BorderBrush="DarkSlateGray" BorderThickness="1"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ItemsSource="{Binding SubVMs}"
>
<ListView.View>
<GridView>
<!-- other columns here -->
<GridViewColumn Width="{Binding BslColumnWidth}" Header="BSL">
<GridViewColumn.CellTemplate>
<DataTemplate>
<!-- content here -->
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
在我的视图模型中,我将其简化为驱动该宽度的布尔属性:
public int BslColumnWidth { get; private set; } = 0;
private bool BslColumnEnabled
{
set
{
int temp = value ? 60 : 0;
if (temp != BslColumnWidth)
{
BslColumnWidth = temp;
NotifyPropertyChanged(nameof(BslColumnWidth));
}
}
}
...但同样,我将像素宽度硬编码到我的视图模型中,这打破了 MVVM 设计模式。有没有一种无需直接绑定视图模型中的宽度属性即可将该信息推送到视图的好方法?
解决方案
推荐阅读
- xml - CSV2XML:如何插入其他节点/元素
- javascript - 如何计算从根 div 到 focusNode 的文本长度?
- python - 需要帮助删除 txt 文件中的重复行
- flutter - 用于编辑不同文本字段的不同键盘
- javascript - JS中类方法与className.prototype方法的区别
- excel - 通过添加和删除行和列来调整VBA中范围对象的方法
- haskell - Haskell:并行列表计算
- r - 如何使用 hierfstat 计算 Pairwise Fst?
- .net - 如何制作 React App 的 Windows 身份验证
- php - 仅针对某些路线的服务提供者 - Laravel