質問するログイン新規登録

回答編集履歴

2

IndexerName忘れてた

2025/07/18 15:27

投稿

TN8001
TN8001

スコア10166

answer CHANGED
@@ -11,12 +11,14 @@
11
11
  ~~単純な`Enum`→`int`なら簡単ですが、インデクサだと`IMultiValueConverter`(xamlがごちゃつく)になっちゃうような??(`MarkupExtension`でどうにかなるとは思いますが、特に考えてはいません^^;~~
12
12
 
13
13
 
14
- `MyArray`部分が消えていいなら、ViewModel自体にインデクサを作ってラッパーにすることは簡単です。
14
+ ~~`MyArray`部分が消えていいなら、~~ ViewModel自体にインデクサを作ってラッパーにすることは簡単です。
15
15
  ```cs
16
16
  public class MainViewModel
17
17
  {
18
+ [IndexerName("MyArray2")]
18
19
  public string this[EnumType enumType] => MyArray[(int)enumType];
19
20
  ```
20
21
  ```xml
21
- <TextBlock Text="{Binding Path=[(local:EnumType)Normal]}" />
22
+ <TextBlock Text="{Binding Path=MyArray2[(local:EnumType)Normal]}" />
22
- ```
23
+ ```
24
+ [IndexerNameAttribute クラス (System.Runtime.CompilerServices) | Microsoft Learn](https://learn.microsoft.com/ja-jp/dotnet/api/system.runtime.compilerservices.indexernameattribute)

1

勘違い

2023/09/20 00:13

投稿

TN8001
TN8001

スコア10166

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  > 現行が配列[添え字]の形式でバインドされているので、影響範囲を考えるとできる限り修正が少なく
9
9
  > (可能であればConverterをかませる等)で出来たらうれしいです。
10
10
 
11
- 単純な`Enum`→`int`なら簡単ですが、インデクサだと`IMultiValueConverter`(xamlがごちゃつく)になっちゃうような??(`MarkupExtension`でどうにかなるとは思いますが、特に考えてはいません^^;
11
+ ~~単純な`Enum`→`int`なら簡単ですが、インデクサだと`IMultiValueConverter`(xamlがごちゃつく)になっちゃうような??(`MarkupExtension`でどうにかなるとは思いますが、特に考えてはいません^^;~~
12
12
 
13
13
 
14
14
  `MyArray`部分が消えていいなら、ViewModel自体にインデクサを作ってラッパーにすることは簡単です。