我从过去两周开始进入这个 wpf。我目前正在开发一个基于 MVVM 模式的 wpf 应用程序。我在 Visual C# 2010 中的解决方案中有 2 个项目。一个是 WPF 应用程序(可以说是 MSPBoardControl),另一个是类库(可以说是 ConnectViewComponent)。因此,MSPBardControl 和 ConnectViewComponent 都分别具有视图、视图模型和模型类。
我已经在我的 MSPBoardControl 中添加了 ConnectViewComponent 的引用,并且我能够在我的 MSBoardControl 的 View、Viewmodel 和模型类中访问 ConnectViewComponent 的成员变量。我关心的是如何从我的 ConnectViewComponent 访问 MSPBardControl 的成员变量。
MSBoardControl 的 ViewModel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using ConnectViewComponent.Model;
using System.Windows.Input;
using ConnectViewComponent.Commands;
[[[using MSPBoardControl.ViewModel;]]]
namespace ConnectViewComponent.ViewModel
{
public class ConnectViewModel : INotifyPropertyChanged
{
public List<ConnectModel> m_BoardNames;
[[[BoardControlViewModel mBoardVM;]]]
public ConnectViewModel()
{
m_BoardNames = new List<ConnectModel>()
{
new ConnectModel() {Name = "Bavaria", Connection_Status = "Disconnected"},
new ConnectModel() {Name = "Redhook", Connection_Status = "Disconnected"},
};
}
public List<ConnectModel> BoardNames
{
//get set
}
private ConnectModel m_SelectedBoardItem;
public ConnectModel SelectedBoard
{
//get set
}
private ICommand mUpdater;
public ICommand ConnectCommand
{
get
{
if (mUpdater == null)
mUpdater = new DelegateCommand(new Action(SaveExecuted), new Func<bool>(SaveCanExecute));
return mUpdater;
}
set
{
mUpdater = value;
}
}
public bool SaveCanExecute()
{
return true;
}
public void SaveExecuted()
{
if (SelectedBoard.Connection_Status == "Disconnected" && SelectedBoard.Name == "Bavaria")
{
SelectedBoard.Connection_Status = "Connected";
}
else if (SelectedBoard.Connection_Status == "Disconnected" && SelectedBoard.Name == "Redhook")
{
SelectedBoard.Connection_Status = "Connected";
}
}
}
}
我的代码中的 [[[ -- ]]] 表示我也无法访问 BoardControlViewModel 的成员以及 USING Namespace.ViewModel 。
我无法在我的 ConnectComponent 项目中添加 BoardControl 的引用,因为它会导致循环依赖。我怎样才能访问它?请帮忙!!