小编fra*_*sg3的帖子

从ViewModel打开/关闭视图

我有一个AddClientViewModel,由2个视图(AddClientView和SuggestedAddressesView)引用.AddClientView是一个具有地址字段的表单.表单有一个验证按钮,使用地理编码验证输入的地址.如果返回多个地址,则打开SuggestedAddressesView.

以下是我目前的做法:

AddClientViewModel:

    private void ValidateExecute(object obj)
    {
        SuggestedAddresses = new ObservableCollection<DBHelper.GeocodeService.GeocodeResult>(GeoCodeTest.SuggestedAddress(FormattedAddress));

        ....

        if (SuggestedAddresses.Count > 0)
        {
            var window = new SuggestedAddressesView(this);
            window.DataContext = this;
            window.Show();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是SuggestedAddressesView构造函数,其中AddClientViewModel从ViewModelBase继承

    public SuggestedAddressesView(ViewModelBase viewModel)
    {
        InitializeComponent();
        viewModel.ClosingRequest += (sender, e) => this.Close();
    }
Run Code Online (Sandbox Code Playgroud)

我遇到的另一个问题是当我从AddClientViewModel调用OnClosingRequest()时... AddClientView和SuggestedAddressesView都关闭.我知道这是因为两个视图都引用了相同的ViewModel.这不是我想要的行为.我希望能够独立关闭任一窗口.

从ViewModel正确的MVVM结构打开一个View,我将如何独立关闭窗口?

c# wpf view mvvm viewmodel

5
推荐指数
1
解决办法
7534
查看次数

WPF 组合框实体框架绑定 (MVVM)

我在 WPF 应用程序中使用 EntityFramework 库,但遇到以下问题:我正在使用 MVVM 模式(据我所知),并且我正在尝试使用 EF 值进行组合框查找。

  • 我有一个 Company 类,其中包含许多办公室(也是一个类)
  • 这是通过 EntityFramework 建模的,所有链接都是正确的(Office 有一个 CompanyName,它是外键)。

这是 OfficeView 类:

public partial class AddOffice : Window
{
    private DBHelper.ResourceManagementContext context = new DBHelper.ResourceManagementContext();
    public AddOffice()
    {
        InitializeComponent();
        context.Companies.Load(); 
        this.DataContext = context.Companies.Local; 
        //this.DataContext = new AddOfficeViewModel();
    }

    public void CloseCommandHandler(object sender, ExecutedRoutedEventArgs e)
    {
        this.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是相应的 XAML:

  <Label Grid.Row="4" Grid.Column="0" Margin="10,10">Company:</Label>
    <ComboBox Grid.Row="4" Grid.Column="1" Margin="10,10"
              ItemsSource="{Binding}"
              DisplayMemberPath="CompanyName"
              SelectedValuePath="CompanyName"
              SelectedValue="{Binding Path=CompanyName}"/>
Run Code Online (Sandbox Code Playgroud)

我知道 MVVM 模式通常将 ViewModel 传递给 View,那么如何使用 OfficeViewModel 将 EntityFramework …

wpf binding combobox mvvm

2
推荐指数
1
解决办法
9180
查看次数

从Entity Framework检索数据库行时的空格

我正在使用Entity Framework,我正在向数据库表添加User(UserNamePassword).该表有一个UserNamecolumn(nchar(20))和一个Passwordhashed(varchar(50))列.

从数据库中检索用户时出现问题.返回的用户名在末尾用空格填充(直到填充了20个字符).我已经使用该Trim()方法暂时解决了这个问题,但考虑到我需要在从数据库返回的每一列上执行此操作,这似乎不切实际.

另一种解决方案是什么?

谢谢!

database whitespace entity-framework trim padding

2
推荐指数
1
解决办法
1600
查看次数

标签 统计

mvvm ×2

wpf ×2

binding ×1

c# ×1

combobox ×1

database ×1

entity-framework ×1

padding ×1

trim ×1

view ×1

viewmodel ×1

whitespace ×1