C# 当导体集合设置为ALACTIVE时,如何停用中的项目
停用已在ContentControl标记中定义的ViewModel时遇到问题。 我不想将可见性设置为false,因为这似乎是一个不合适的解决方案 这就是它的外观,似乎在AllActivity中,我们不需要激活每个项目:C# 当导体集合设置为ALACTIVE时,如何停用中的项目,c#,.net,wpf,xaml,caliburn.micro,C#,.net,Wpf,Xaml,Caliburn.micro,停用已在ContentControl标记中定义的ViewModel时遇到问题。 我不想将可见性设置为false,因为这似乎是一个不合适的解决方案 这就是它的外观,似乎在AllActivity中,我们不需要激活每个项目: <ContentControl Grid.Column="0" cal:View.Model="{Binding RandomScreenViewModel}"/> 在代码隐藏中,可以将ViewModel的IsEnabled值设置为false。我知道您说过不想将可见
<ContentControl Grid.Column="0" cal:View.Model="{Binding RandomScreenViewModel}"/>
在代码隐藏中,可以将ViewModel的IsEnabled值设置为false。我知道您说过不想将可见性设置为false,但可以将可见性设置为Collapsed。此解决方案将对您的输出完全隐藏它 如果要在代码隐藏中执行此操作,则需要执行以下操作:
yourObject.Visibility = Visibility.Collapsed;
在代码隐藏中,可以将ViewModel的IsEnabled值设置为false。我知道您说过不想将可见性设置为false,但可以将可见性设置为Collapsed。此解决方案将对您的输出完全隐藏它 如果要在代码隐藏中执行此操作,则需要执行以下操作:
yourObject.Visibility = Visibility.Collapsed;
我是WPF Caliburn Micro的新手,我从未在实际应用中使用过
Conductor.Collection.AllActive
,但我尝试过一点。当您将其添加到作为屏幕集合的项目中时,所有项目都将被激活。
如果您想停用它,只需使用DeactivateItem(T项,bool close)
方法,该方法获取您正在执行的项,bool指示您也要关闭它
这是一段代码
ShellViewModel.cs
public void Remove()
{
if (Items.Count > 0)
{
DeactivateItem(Items[0], true);
}
}
<ItemsControl x:Name="Items" />
<Button cal:Message.Attach="Remove"
Width="50"
Content="Deactive" />
ShellView.xaml
public void Remove()
{
if (Items.Count > 0)
{
DeactivateItem(Items[0], true);
}
}
<ItemsControl x:Name="Items" />
<Button cal:Message.Attach="Remove"
Width="50"
Content="Deactive" />
当删除项目中的项目时,ShellView将得到更新,因为项目是实现INotifyCollectionChanged
IObservableCollection的IObservableCollection类型
我只尝试使用ItemsControl
绑定项目,但另一个控件也应该能够屏蔽集合(我不知道XD)我是WPF Caliburn Micro的新手,我从未在实际应用中使用过Conductor.collection.AllActive
,但我尝试过一点。当您将其添加到作为屏幕集合的项目中时,所有项目都将被激活。
如果您想停用它,只需使用DeactivateItem(T项,bool close)
方法,该方法获取您正在执行的项,bool指示您也要关闭它
这是一段代码
ShellViewModel.cs
public void Remove()
{
if (Items.Count > 0)
{
DeactivateItem(Items[0], true);
}
}
<ItemsControl x:Name="Items" />
<Button cal:Message.Attach="Remove"
Width="50"
Content="Deactive" />
ShellView.xaml
public void Remove()
{
if (Items.Count > 0)
{
DeactivateItem(Items[0], true);
}
}
<ItemsControl x:Name="Items" />
<Button cal:Message.Attach="Remove"
Width="50"
Content="Deactive" />
当删除项目中的项目时,ShellView将得到更新,因为项目是实现INotifyCollectionChanged
IObservableCollection的IObservableCollection类型
我只尝试使用ItemsControl
绑定项,但另一个控件也应该能够屏蔽集合(我不知道XD)