私は過去2週間からこのwpfに夢中です。私は現在、MVVMパターンに基づいたwpfアプリケーションを開発しています。Visual C#2010のソリューション内に2つのプロジェクトがあります。1つはWPFアプリケーション(たとえばMSPBoardControl)で、もう1つはクラスライブラリ(たとえばConnectViewComponent)です。したがって、MSPBoardControlとConnectViewComponentの両方に、それぞれview、viewmodel、modelクラスがあります。
MSPBoardControlにConnectViewComponentの参照を追加し、MSPBoardControlのView、Viewmodel、およびmodelクラスのConnectViewComponentのメンバー変数にアクセスできるようになりました。私の懸念は、ConnectViewComponentからMSPBoardControlのメンバー変数にアクセスする方法です。
MSPBoardControlの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のメンバーにアクセスできず、Namespace.ViewModelも使用できないことを示しています。
循環依存につながるため、ConnectComponentプロジェクトにBoardControlの参照を追加できません。どうすればアクセスできますか?助けてください!!