<p>I am using a ResourceDictionary, but I would like to be able to look up the value or the key with the other item.  Each is always unique, so that is not a problem.  Is there a type that has this double sided lookup feature?</p>

Not built in, but this is pretty easy to write.  I would probably implement IDictionary for this though...  You would then dump the ResourceDictionary into your custom type.
```
```
public class DoubleLookup<TKey, TValue>
{
  private IDictionary<TKey, TValue> keys;
  private IDictionary<TValue, TKey> values;

  //stuff...

  public void Add(TKey key, TValue value)
  {
    this.keys.Add(key, value);
    this.values.Add(value, key);
  }

  public TKey GetKeyFromValue(TValue value)
  {
    return this.values[value];
  }

  public TValue GetValueFromKey(TKey key)
  {
    return this.keys[key];
  }

}
```
```