質問

ItemsSourceとしての観測値があるListViewがあり、いくつかの列があります。これらの1つは、アイテムの現在の状態に応じて、異なるメッセージを表示する状態列です。現在、これは基本的な文字列として実装されており、機能している間は、きれいまたはユーザーフレンドリーとはほど遠いものです。アイテムの状態に合わせてより適切に合わせて出力の種類を変えることができるようにしたいと思います。

私はいくつかの調査をしましたが、ディスプレイに影響を与えるためにセルテンプレートを使用する必要があることを知っていますが、さまざまな種類のテンプレートは、次にどこに行くべきかを理解できないところまで私を圧倒します。

私のコード(他の多くのListView Fluffを除く)は次のとおりです。

<ListView Name="itemsListView" ItemsSource="{Binding Source={StaticResource listingDataView}}" IsSynchronizedWithCurrentItem="True">
    ...
    <ListView.View>
         <GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Item Information">
             ...
             <GridViewColumn DisplayMemberBinding="{Binding Path=StatusMessage}" Width="283" Header="Status" HeaderContainerStyle="{StaticResource GVHeaderLeftAlignedStyle}" />
         </GridView>
    </ListView.View>
</ListView>

はい、アイテムには、コードに実際に関連する他のプロパティと一緒に更新されるハードコーディング「ステータスメッセージ」があり、私のコードの他の場所で醜い複製を引き起こします。 (そして、はい、私はこれがきれいとはほど遠いことを知っていますが、私もこれを改善したいです。)そのプロパティは呼ばれます ItemState 私はそれほど創造的ではないので。

それで、私の質問は次のとおりです。特定の状態に最も適したディスプレイを持つために、この列を変更するにはどうすればよいですか?テキストの説明は多くの州で行われますが、一部はかなり長いものであり、それ以外の進行状況バーがあるテキストから利益を得るかもしれません。別の状態は、クリック可能なハイパーリンクを持つことで利益を得ます。言い換えれば、私は少なくとも3つの異なるセルテンプレートが必要だと思います。

WPFでの経験がほとんどない誰かのデザインの間違いに大きく苦しんでいるのは、かなりオープンエンドの質問であることを理解していますが、それがまさに経験のある人が基本的なコードで私をまっすぐに設定できることを望んでいる理由です私がすでに持っているよりもさらに悪いことをする前に。 :)

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top