メインウィンドウが既に構築されているプログラムがあり、「プロファイラ」というウィンドウを追加しています。メインウィンドウには、使用できる必要があるリストがありますので、メインウィンドウをベースとして使用する必要があります。別のWPFウィンドウからリストを継承する
私がした最初の事は、私は私が保護に必要なリストを作成し、メインウィンドウクラスにあったし、作成してもらう方法:プロファイラーウィンドウに、私は(メインウィンドウを使用しようとした後
protected List<PaperRoll> paperRolls = new List<PaperRoll>();
public List<PaperRoll> PaperRolls
{
get { return paperRolls; }
}
基底クラスとしてのDspWindowと呼ばれている):
public partial class Profiler : DspWindow
{
public Profiler() : base()
{
InitializeComponent();
List<PaperRoll> pr = base.PaperRolls;
}
}
これは、「プロファイラ」の部分的な宣言が異なる基底クラスを指定することはできませんエラーが発生しました。私はエラーを調べようとしましたが、これはxamlが基底クラスから継承していなかったためです。したがって、私は、基本クラスが含まれるようにXAMLに変更:
<base:DspWindow x:Class="DSP_Simulator.Profiler"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DSP_Simulator"
mc:Ignorable="d"
Title="Profiler" Height="300" Width="300">
<Grid>
</Grid>
</base:DspWindow>
そして、このような「ベース:DspWindow」などの複数のエラーが発生した、接頭辞「ベースを」が見つかりませんでしたが "とを定義されていませんbase 'は宣言されていないプレフィックスです。 誰かが私がどこに行くのか教えてもらえますか?
あなたは自分のメインウィンドウのインスタンスVARメイン=(メインウィンドウ)Application.Current.MainWindowをつかむ、基本クラスとしてそれを使用する必要はありません。 – JohnChris