gpt4 book ai didi

mvvm - Datagrid 未更新,datagridtextcolumn 上的 Visibility 属性

转载 作者:行者123 更新时间:2023-12-03 10:39:07 68 4
gpt4 key购买 nike

所以你可以看到 ID 列应该被隐藏但它不是。并且调试器将 xaml 文件中 IDVisible 的值显示为“隐藏”,但它从未进入窗口。我也在调用属性更改方法。我做错了什么,ID 列应该消失,或者至少这就是我想要做的。

MainWindow.xaml

这是 MainWindowViewModel.cs 的代码

namespace MagicDB
{
class MainWindowViewModel : ObservableObject
{
private CardDB _cards;
private Command _InitCardDB;
private Visibility _IDVisible;

public CardDB Cards
{
get { return _cards; }
set { _cards = value; OnPropertyChanged("Cards"); }
}

public Visibility IDVisible
{
get { return _IDVisible; }
set { _IDVisible = value; VerifyPropertyName("IDVisible"); OnPropertyChanged("IDVisible"); }
}

public MainWindowViewModel()
{
IDVisible = Visibility.Hidden;
_InitCardDB = new Command(InitDB, true);
Cards = new CardDB();
}

和 xaml 文件....
<Window x:Class="WpfDataGrid.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Width="500" Height="500">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="450*" />
</Grid.RowDefinitions>
<DataGrid AutoGenerateColumns="False"
HorizontalAlignment="Left"
Name="dataGrid1"
VerticalAlignment="Top"
ItemsSource="{Binding Cards.cardDB}"
CanUserReorderColumns="True"
CanUserResizeColumns="True"
CanUserResizeRows="False"
CanUserSortColumns="True"
AlternatingRowBackground="LightBlue"
Width="480" Height="auto" Grid.Row="1" IsSynchronizedWithCurrentItem="True"
>
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding CardID}" Width="25" Visibility="{Binding IDVisible,Mode=TwoWay}"></DataGridTextColumn>

最佳答案

我会检查您的可见绑定(bind),因为它很可能会失败。这个page解释了一些您可以使用的方法。我个人更喜欢调整跟踪级别。

我相信绑定(bind)失败的原因是您的 DataContext(我假设您已将其设置在某处)本身没有进入 DataGrid 的列。这个page解释了我过去用来解决此问题的修复程序。我想我最初是从这篇 page 中找到那篇文章的还有其他几个值得了解的 WPF 'Gotchas'。

关于mvvm - Datagrid 未更新,datagridtextcolumn 上的 Visibility 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12610460/

68 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com