使用MVVM模式在WPF中从视图模型到视图进行条件绑定

naufal_chiadmi

我正在使用MVVM模式开发WPF应用程序。我在视图中有一个组合,而在视图模型中有两个列表(项目和组织)。根据组织列表项的不同,我必须绑定组织名称。例如,如果组织列表的Count属性为1,则组合框项目必须为“ ProjectName”;如果组织列表的Count属性大于1,则组合框项目应类似于“ ProjectName-OrganizationName”这是我拥有的XAML代码:

<ComboBox x:Name="textBox3" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" ItemsSource="{Binding Path=Projects}" DisplayMemberPath="Name" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding Path=SelectedProject}">
        </ComboBox>

我应该如何实现这个目的。希望能有所帮助。干杯。

我在视图模型中添加了属性projectFullName,但是得到了一个空的组合框:

 public string ProjectFullName
    {
        get
        {
            if (this.organizations.ToList().Count > 1)
            {
                this.projectFullName = string.Format("{}{0} - {1}", this.selectedProject.Name, this.organizations.First(org => org.Id == this.selectedProject.OrganizationId).Name);
            }
            else if (this.organizations.ToList().Count == 1)
            {
                this.projectFullName = this.selectedProject.Name;
            }
            return this.projectFullName;
        }
    }

XAML代码:

<ComboBox x:Name="textBox3" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" ItemsSource="{Binding Path=Projects}" DisplayMemberPath="{Binding Path=ProjectFullName}" IsSynchronizedWithCurrentItem="True" SelectedItem="{Binding Path=SelectedProject}">

        </ComboBox>
本·科恩

您可以选择几种方法来实现此目的,但我认为最好的是:

在您的数据上下文中添加一个属性,该属性将称为“ FullName”或其他名称。这将返回:(伪)如果Projects count> 0,则返回Name +'-'+ ProjectName,否则返回Name

然后将DisplayMemberPath绑定到FullName。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在视图模型和视图之间使用MVVM进行WPF数据上下文绑定

WPF:从 MVVM 中的视图模型绑定列表视图项源

将视图模型的集合绑定到WPF MVVM TabControl

WPF 绑定视图模型

WPF 使用数据模板将视图模型绑定到多个视图

(MVVM / WPF)在视图模型中操纵视图元素

绑定到模型或视图模型

如何将值从TextBox绑定到Mvvm Light中的视图模型

将VisualStateGroup的当前状态绑定到UWP MVVM应用程序的视图模型中的属性

WPF MVVM 绑定到父视图的 ViewModel 属性

Xamarin表单中的视图到不同视图模型的绑定

WPF将IsEnabled绑定到视图模型上的方法

WPF控件(绑定到视图模型上的列表的属性)想要在Xaml中定义列表

如何在WPF应用程序中绑定到子视图模型属性?

WPF MVVM:从转换器调用视图模型中的方法

WPF MVVM我可以从视图使用模型吗

Tabcontrol MVVM 光视图模型绑定

从MVVM中的视图模型关闭视图

如何使用具有“无限”级别的模型中的 mvvm 填充 wpf 树视图

其他视图模型中发生某些更改时,视图模型中的WPF MVVM更新属性

如何使用Caliburn.Micro将容器绑定到MVVM标准中的列表视图控件?

您可以使用MVVM模式将多个LineSeries绑定到WPF中的氧化图吗?

在MVVM模式中使用闭包,将视图模型与视图控制器绑定是一种好习惯吗?

从WPF(MVVM)中的视图将KeyEventArgs传递到ViewModel

MVVM + 数据绑定 + 视图模型不更新视图

视图模型之间的WPF MVVM通信

如何绑定到 C# Xamarin Forms 中的视图模型?

如何在 BindableLayout 中绑定到 MasterPage 视图模型

如何在Aurelia中从视图绑定到模型