0

次のXAMLで辞書を定義したい

Dictionary<Tuple<ModifierKeys, Key>, ICommand> 

IDitionaryを継承するクラスを作成する必要があることはわかっています。それを呼び出す方法、またはXAMLで使用する方法を説明します。

ユーザーコントロールのレベルで、ショートカットリストを作成し、MVVMモデルでキーダウンをキャッチするグローバルビヘイビアに渡したいので、このディクショナリをビヘイビアに渡してチェックします

4

1 に答える 1

1

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>
于 2012-11-05T09:48:32.300 に答える