次のXAMLで辞書を定義したい
Dictionary<Tuple<ModifierKeys, Key>, ICommand>
IDitionaryを継承するクラスを作成する必要があることはわかっています。それを呼び出す方法、またはXAMLで使用する方法を説明します。
ユーザーコントロールのレベルで、ショートカットリストを作成し、MVVMモデルでキーダウンをキャッチするグローバルビヘイビアに渡したいので、このディクショナリをビヘイビアに渡してチェックします
次のXAMLで辞書を定義したい
Dictionary<Tuple<ModifierKeys, Key>, ICommand>
IDitionaryを継承するクラスを作成する必要があることはわかっています。それを呼び出す方法、またはXAMLで使用する方法を説明します。
ユーザーコントロールのレベルで、ショートカットリストを作成し、MVVMモデルでキーダウンをキャッチするグローバルビヘイビアに渡したいので、このディクショナリをビヘイビアに渡してチェックします
xamlがそれをサポートしている場合(私はSilverlightの専門家ではありません)、xamlでx:TypeArgumentsを使用できます。
詳細については、このリンクhttp://msdn.microsoft.com/en-us/library/ms750476(v=vs.100).aspxを参照してください。
xamlがサポートしていない場合、これを実現する非常に簡単な方法は、必要な型パラメーターを使用して辞書を継承する独自のクラスを作成することです。
public class YourTuple
{
public ModifierKeys ModifierKey { get; set; }
public ICommand Command { get; set; }
}
public class YourClass : Dictionary<YourTuple, ICommand>
xamlで直接使用します
<Window x:Class="SO.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:SO="clr-namespace:SO"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<SO:YourClass>
<YourCommand ...>
<YourCommand.Key>
<YourTuple ModifierKey="..." Key="..."
</YourCommand.Key>
</YourCommand>
...
</SO:YourClass>
</Window.Resources>
</Window>