Я определил 3 стиля в ResourceDictionary во внешней сборке следующим образом:
<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type res:Common},
ResourceId=numbersOnly}" TargetType="TextBox">
...
</Style>
<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type res:Common},
ResourceId=positiveInt}" TargetType="TextBox">
...
</Style>
<Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type res:Common},
ResourceId=positiveDecimal}" TargetType="TextBox">
...
</Style>
В той же сборке я определил класс, подобный этому:
public static class Common {
public static ComponentResourceKey NumbersOnly {
get {
return new ComponentResourceKey(
typeof(Common), "numbersOnly");
}
}
public static ComponentResourceKey PositiveInt {
get {
return new ComponentResourceKey(
typeof(Common), "positiveInt");
}
}
public static ComponentResourceKey PositiveDecimal {
get {
return new ComponentResourceKey(
typeof(Common), "positiveDecimal");
}
}
}
Я использую эти стиликак это:
<TextBox Style="{DynamicResource {x:Static segres:Common.NumbersOnly}}" />
Это работает, если я определяю только одно свойство в классе выше, но если я определяю более одного (как выше) ресурса, он не может быть разрешен.
Почему это происходит?Такое поведение не кажется мне логичным.