gpt4 book ai didi

c# - WPF MVVM 防止选项卡更改

转载 作者:太空狗 更新时间:2023-10-30 01:21:04 25 4
gpt4 key购买 nike

我有一个 WPF 选项卡控件,其中包含两个选项卡,分别称为“离线”和“在线”。单击“在线”选项卡时,我需要检查应用程序是否处于在线状态。如果(状态!=在线)显示错误消息并阻止显示“在线”(第二个)选项卡并转到“离线”选项卡。

VIEW.XAML

 <TabControl Name="dashboardTabControl" SelectedIndex="{Binding SelectedTabIndex,Mode=TwoWay}">
<TabItem Header="Local Dashboard">
<views:OfflineDashboard DataContext="{Binding OfflineDashboardViewModel}"/>
</TabItem>
<TabItem Header="Online Dashboard">
<views:OnlineDashboard DataContext="{Binding OnlineDashboardViewModel}"/>
</TabItem>
</TabControl>

View 模型

       public int SelectedTabIndex
{
get
{
return this.selectedTabIndex;
}

set
{
if (value == 1 && !applicationData.IsApplicationOnline())
{
this.SelectedTabIndex = 0;
}
else
{
this.selectedTabIndex = value;
}

// TODO : According to the selected tab index , populate ONLINE/OFFLINE
viewmodels

NotifyPropertyChange("SelectedTabIndex");
}
}

问题:虽然我检查了状态并将选项卡设置为 0,但它不起作用。总是点击第二个选项卡,它将显示在线选项卡。

最佳答案

我会反过来做。

让 ViewModel 监听网络变化并在线公开 bool 属性。

将 Tabpages 的 Enabled 属性绑定(bind)到这个 bool。

这样您就不会用 UI 代码污染 ViewModel。

关于c# - WPF MVVM 防止选项卡更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16852841/

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