Xaml を介して My.Resources にアクセスする方法はありますか?
このような
<Image Source="{Binding MyImage,
Source={x:Static my:Resources},
Converter={StaticResource MyBitmapToImageSourceConverter}}" />
これは私が得るエラーです: \Application.xaml(122,36): error MC3029: 'my:Resources' member is not valid because it has a limited type name.
上記はもちろん機能しません。
注: コンバーターは説明のみを目的としています。
アップデート:
私は 1 つのアイデアについて考えました。それが機能する場合、これは良いアプローチかもしれません。リソースのラッパー クラスを作成しました。
Public Class Resources
Public Shared ReadOnly m_Resources As New Resources
Public Shared ReadOnly Property Resources() As Resources
Get
Return m_Resources
End Get
End Property
Public ReadOnly Property MyResources(ByVal name As String) As Object
Get
Return My.Resources.ResourceManager.GetObject(name)
End Get
End Property
End Class
そして、バインディングで次のようにアクセスしようとします:
<Setter Property="ImageSource"
Value="{Binding MyResources[Ok], Source={x:Static src:Resources.Resources}}"/>
しかし、私はまだ次のメッセージを受け取ります:
System.Windows.Data エラー: 16: '' (タイプ 'Resources') から 'MyResources' 値 (タイプ 'Object') を取得できません。BindingExpression:Path=MyResources[OK]; DataItem='Resources' (HashCode=59109011); ターゲット要素は 'Image' (Name='btnOk'); ターゲット プロパティは 'Source' (タイプ 'ImageSource') です TargetParameterCountException:'System.Reflection.TargetParameterCountException: パラメーター数が一致しません。
ところで、テスト MessageBox を MyResources Getter に配置しましたが、プロパティにはまったくアクセスしていないようです。