質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

2824閲覧

xamlファイルのコピー

jhon.ta

総合スコア12

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2017/04/15 14:48

WPFでxamlをコピーするとうまくいきません

CatchCopyEditView.xamlをコピーしてCommentEditView.xamlを作成します。

以下xamlファイルです。

<local:SubViewBase x:Class="AAA.View.Companion.CatchCopyEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:AAA.View.Companion"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="900">
<Grid Background="White">
<ListBox ItemsSource="{Binding Path=CatchCopies}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="1">
<Border BorderBrush="Silver" BorderThickness="1">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition Height="24" />
<RowDefinition Height="24" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="80" />
</Grid.ColumnDefinitions>
<Label Content="{Binding SiteNameJIS}" Grid.Row="0" Grid.Column="0"/>
<Label Content="{Binding TipsMessage}" Grid.Row="0" Grid.Column="1"/>
<TextBox Text="{Binding Data, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="1"/>
<Label Content="{Binding RestMessage}" Grid.Row="1" Grid.Column="2" Foreground="Red"/>
</Grid>
</Border>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Grid>
</local:SubViewBase>

以下コードビハインドです

using System;

namespace XXX.View.Companion
{
public partial class CatchCopyEditView
: SubViewBase
{
public CatchCopyEditView()
{
InitializeComponent();
}

public override void OnInitialize() { } public override void OnPause() { } public override void OnResume() { } public override void OnTerminate() { } }

}

これら2つのファイルをCatchCopyからCommentに変更すると

InitializeComponent();の部分にエラーが生じます。

CatchCopyのコードビハインド(InitializeComponentの部分)

には

次のメソッドまたはプロパティー間で呼び出しが不適切です CatchCopyEditView.InitializeComponent ();とCatchCopyEditView.InitializeComponent ();

と2つCatchCopyEditView.InitializeComponent ();が出て

Commentのコードビハインド(InitializeComponentの部分)には

現在のコンテキストにはInitializeComponent ();が存在しませんと

エラーが出ます。

この理由ご教授いただければありがたいです。

ちなみにベースクラスは

public abstract class SubViewBase : UserControl
{
/// <summary>
/// 初期化
/// </summary>
public abstract void OnInitialize();

/// <summary> /// 表示前イベント /// </summary> public abstract void OnResume(); /// <summary> /// 表示終了イベント /// </summary> public abstract void OnPause(); /// <summary> /// 破棄 /// </summary> public abstract void OnTerminate(); }

と定義しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コピーしたCommentEditView.xamlファイルの先頭行のx:Classの部分(↓の箇所)はどうなっていますか?

<local:SubViewBase x:Class="AAA.View.Companion.CatchCopyEditView"

AAA.View.Companion.CommentEditViewではなく
AAA.View.Companion.CatchCopyEditViewとなっていませんか?

投稿2017/04/15 22:13

doubutweet

総合スコア141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問