加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – caliburn.micro绑定元素对viewmodel函数的可见性,而不是属

发布时间:2020-12-15 23:25:32 所属栏目:百科 来源:网络整理
导读:首先 – 我很抱歉,如果它是重复的 – 已经看了一会儿,但找不到答案, 我们正在使用caliburn.micro,因此解决方案必须使用此工具. 我们有一个由9个按钮组成的视图 – 然而 – 并非所有按钮都可以在同一时间看到,它取决于系统上的事件. 根据当前状态,每个按钮可
首先 – 我很抱歉,如果它是重复的 – 已经看了一会儿,但找不到答案,

我们正在使用caliburn.micro,因此解决方案必须使用此工具.

我们有一个由9个按钮组成的视图 – 然而 – 并非所有按钮都可以在同一时间看到,它取决于系统上的事件.
根据当前状态,每个按钮可见性可见或折叠,但由于它是大量按钮,并且将来可能会增加,我宁愿只有一个功能来执行此操作(接收名称或枚举并返回可见性)而不是有大量的属性来绑定每个按钮.

它甚至是一种选择吗?我似乎找不到以任何传统方式做到这一点的方法.

由于事件是从软件外部接收的,我们正在开发这样做在视图级别上实际上不是一个选项(或者至少 – 不是正确的)

编辑:这是我想要修改的视图的片段:

<Grid Margin="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="120" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>

                <uiviews:PhonePadView Grid.Column="0" x:Name="DestinationDn" cal:Bind.Model="UI.ViewModels.PhonePadViewModel" />

                <Button  Grid.Column="1" Content="Dial" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="MakeCall" Visibility="{Binding btnMakeCallVisibility}" />
                <Button  Grid.Column="1" Content="Answer" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="AnswerCall" Visibility="{Binding btnAnswerCallVisibility}" />
                <Button  Grid.Column="1" Content="Hang-up" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="ReleaseCall" Visibility="{Binding btnReleaseCallVisibility}" />
                <Button  Grid.Column="1" Content="Hold" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="HoldCall" Visibility="{Binding btnHoldCallVisibility}" />

            </Grid>

正如你所看到的,我需要为每个按钮设置不同的属性,我拒绝相信这是唯一的方法,我确实有一个属性保持当前状态(电话响铃,通话,拨号等. )并且很容易在VM上有一个功能来告诉哪个按钮应该是可见的,哪个不应该是可见的,最重要的是我们当前有9个按钮,但它可能很容易扩展更多,所以我正在寻找这里有大多数模块化代码

解决方法

开箱即用,如果您使用“IsVisible”后缀命名,Caliburn Micro将切换可见性.

在视图上:

<Grid Name="ConfigEditorIsVisible">
    <TextBlock>Test</TextBlock>
</Grid>

在ViewModel上:

public bool ConfigEditorIsVisible { get; set; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读