私はXamarinでバインドしようとしているDictionary<Tuple<SomeEnum, double, string>, double>
を持っています。私は値(ダブル)をラベルにバインドしようとしています。私が持っている問題は、タプルキーにバインドするパス構文を理解できないことです。私はDictionary<string, double>
と私はちょうどPath="[" + keyString + "]"
を聞かせて、知っているが、私はキーとしてタプルを使用する場合は何をするか分からない。それはあなたがコンマ(、)で区切られた複数のインデクサのパラメータを持つことができますインデクサインサイドC#のタプルキーで辞書へのデータバインディング
ことに注意しないが、でもMicrosoft's page on data binding path syntax in C#は、明示的にこのケースを処理していないようです。各パラメーターのタイプは、かっこで指定することができます。たとえば、
Path="[(sys:Int32)42,(sys:Int32)24]"
を持つことができます。sysは、System名前空間にマップされます。
ここでは、これは単一のインデクサーオブジェクトにも当てはまると思います。だから私の辞書のケースでは、私はPath="[(sys:Tuple<SomeEnum, sys:double, sys:string>)???]"
のようなものを持っていると思うが、私は???
がどこに行くのか分からない。 SomeEnum
の前に名前空間が必要かどうかはわかりません。そして最後に、私はそれ以上の詳細な文書を見つけることができません。だから、私はこれらの面のいずれかに助けを借りるつもりです。
最後に、私はちょうどあきらめて、Dictionary<string, double>
に切り替えて、その文字列をタプルのタイプの.ToString()
の連結にする必要があるかもしれないと恐れています。各キーをstring key = SomeEnum.SomeValue + "," + someDouble + "," + someString
とすることで、これを正しく行うことができます。私はタプルを別の非文字列型に変更するのにはオープンですが、それが役に立ちます。おそらく他の不変の型ですか?私はC#のデータバインディングには基本を超えて熟練しているわけではないので、どんな助けやアイデアも高く評価されています。
これは、あなたの質問に答えるかもしれませんします。http:// stackoverflow.com/a/43209056/880990 –
ありがとうOlivier、それは新しいC#7の価値ですタプルタイプ。私はバインド可能な古いC#6タプル型を使用しています。例えば、 https://msdn.microsoft.com/en-us/library/dd386940(v=vs.110).aspx。あなたが投稿した質問が私を助けることができるかどうかは分かりません。 – TheIntern