C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: XAMLからのアプリケーション設定参照方法


(過去ログ 130 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■77227 / inTopicNo.1)  XAMLからのアプリケーション設定参照方法
  
□投稿者/ ??? (6回)-(2015/09/29(Tue) 13:41:47)

分類:[C#] 


XAMLのリソースとして、アプリケーション設定(Properties.Settings)を直接指定する試みをしています。
下記のサイトを参考にプログラムを作成しましたが、例外が発生して動きません。

単純なことだと思うのですが、WPF初挑戦でハマってしまいました。
どなたかアドバイスいただけないでしょうか。


(例外)
System.Windows.Markup.XamlParseException はハンドルされませんでした。
Message: 型 'System.Windows.Markup.XamlParseException' のハンドルされていない例外が PresentationFramework.dll で発生しました
追加情報:'System.Windows.StaticResourceExtension' の値の指定時に例外がスローされました。



Settingsを使ったWPFでのアプリケーション設定の保存 プログラマーズ雑記帳
http://yohshiy.blog.fc2.com/blog-entry-253.html
引用返信 編集キー/
■77232 / inTopicNo.2)  Re[1]: XAMLからのアプリケーション設定参照方法
□投稿者/ WebSurfer (659回)-(2015/09/29(Tue) 16:28:03)
No77227 (??? さん) に返信

??? さんとはどなたでしょうか?

> Settingsを使ったWPFでのアプリケーション設定の保存 プログラマーズ雑記帳
> http://yohshiy.blog.fc2.com/blog-entry-253.html

それのどのコードを、どのように試して、どこで例外がスローされたのですか?

それから、ご自分の開発環境(OS, .NET, Visual Studio のバージョンなど)を書
いていただけませんか?
引用返信 編集キー/
■77234 / inTopicNo.3)  Re[2]: XAMLからのアプリケーション設定参照方法
□投稿者/ まさ (7回)-(2015/09/29(Tue) 18:03:05)
No77232 (WebSurfer さん) に返信

>>http://yohshiy.blog.fc2.com/blog-entry-253.html
> どのコードを、どのように試して、どこで例外がスローされたのですか?

(1) リソース登録するためApp.xamlを編集
(2) アプリケーション設定の「FilePath」をtextBoxにバインドするため、MainWindow.xamlを編集
(3) 実行してWindowを開くと「System.Windows.StaticResourceExtension」発生
という流れです。

App.xaml
-----------------------------
<Application x:Class="MakeOrderFile.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:prop="clr-namespace:WpfApplication1.Properties"
>
<Application.Resources>
<prop:Settings x:Key="sett" />
</Application.Resources>
</Application>
-----------------------------

MainWindow.xaml
-----------------------------
<Window x:Class="MakeOrderFile.MainWindow"
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:MakeOrderFile"
mc:Ignorable="d"
Title="" Height="200" Width="200">
<Grid Height="199" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBox x:Name="textBox" Height="17" TextWrapping="Wrap" Text="{Binding FilePath, Mode=OneWay, Source={StaticResource sett}}" VerticalAlignment="Top" Margin="40,0,30,0"/>
</Grid>
</Window>

-----------------------------


> それから、ご自分の開発環境(OS, .NET, Visual Studio のバージョンなど)を書
> いていただけませんか?
(Windows7、.NET 4.5.2、Visual Studio2015)


> ??? さんとはどなたでしょうか?
失礼しました。
引用返信 編集キー/
■77241 / inTopicNo.4)  Re[3]: XAMLからのアプリケーション設定参照方法
□投稿者/ WebSurfer (661回)-(2015/09/30(Wed) 10:36:47)
No77234 (まさ さん) に返信

参考にされている記事と同じコードと言うわけではなさそうですね。

質問には書いてないコードが多々あって、その部分に問題があるということはない
ですか? とするとその差分が分かるのは質問者さんだけで、原因の切り分けがで
きるのは質問者さんしかいないと思うのですが・・・

参考にされている記事と全く同じコードで問題が起こると言うことであれば、質問者
さんの環境固有の問題(どこかのファイルが壊れているとか)が疑わしいのですが、
そのあたりの切り分け(他の開発マシンで試すなど)はされているのでしょうか?

念のため自分の環境(Vista SP2 32-bit, .NET 4, VS2010 Pro)で参考にされている
記事のコード(プラス、質問者さんがやったような TextBox.Text プロパティの設定
も)を試してみましたが、質問者さんの問題は再現できなかったです。

発生した例外から何か心当たりはないかという質問ですと、残念ながら自分には分か
りません。他の方の回答をお待ちください。

XamlParseException でググるといろいろバグっぽい話などヒットしますが、そこに
ヒントがあるかもしれません。
引用返信 編集キー/
■77242 / inTopicNo.5)  Re[3]: XAMLからのアプリケーション設定参照方法
□投稿者/ WebSurfer (662回)-(2015/09/30(Wed) 11:20:03)
No77234 (まさ さん) に返信

後になって何ですが、一点だけ気がついたところを・・・

以下の設定は間違いなんでしょうか?

> Text="{Binding FilePath, Mode=OneWay, Source={StaticResource sett}}"

例えば、 Settings.settings で、名前を "DefaultString"、型を "string"、
スコープを "ユーザー"、値を "サンプル文字列" としたリソースを追加し、
それを参考にされている記事の「UI からのリソース利用」の手順に従って
TextBox の Text プロパティに設定すると以下のようになるはずですが?

Text="{Binding Source={StaticResource sett}, Path=DefaultString}"

これで問題なく TextBox には "サンプル文字列" と表示されます。

引用返信 編集キー/
■77255 / inTopicNo.6)  Re[4]: XAMLからのアプリケーション設定参照方法
□投稿者/ まさ (8回)-(2015/09/30(Wed) 23:01:53)
No77242 (WebSurfer さん) に返信

> 以下の設定は間違いなんでしょうか?
>>Text="{Binding FilePath, Mode=OneWay, Source={StaticResource sett}}"
ご指摘の箇所は、VisualStudioにより自動生成された部分です。


> Text="{Binding Source={StaticResource sett}, Path=DefaultString}"
> これで問題なく TextBox には "サンプル文字列" と表示されます。
こちらも同じでした。


コメントありがとうございました。
上手く質問できずにすみません。勉強して、質問の整理ができればと思います。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -