「Androidは電気羊の夢を見るか」を読みたい管理者のブログ

仕事などでの色々な発見を記事にしてます。不定期更新。

"datatriggerの使い方(wpf)"をListBoxに拡張してみたよ。

DataTriggerの使い方(WPF)|Memeplexes

注意点1 ViewModelではなくItemsSourceを使ってます。
注意点2 基本的に使われてる方法論は
ListBoxで選択されてるアイテムの背景色を青から違う色にしたい - 「Androidは電気羊の夢を見るか」を読みたい管理者のブログと同じ。
注意点3 上位階層で別途Itemsプロパティを含んだDataContextを指定してくださいね。
注意点4 Itemsプロパティの型はStart(bool型)とText(String型)を含んだクラス(のObservableCollection(←データ変更しないのであればコレクションであればなんでもいいと思う))であるべし。

いちおう
方法 : データが変化したときにアニメーションをトリガする
ここでもそれっぽいことやってるんですが、MSDNが異様にわかりにくい。Bindingするプロパティを置く場所はItemsSourceなのかDataContextなのか明示されてないし...。

        <ListBox ItemsSource="{Binding Items}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Border x:Name="Bd">
                        <TextBlock Text="{Binding Path=Text}"/>
                    </Border>
                    <DataTemplate.Triggers>
                        <DataTrigger Binding="{Binding Start}" Value="true">
                            <Setter Property="Background" TargetName="Bd" Value="Cyan"/>
                        </DataTrigger>
                    </DataTemplate.Triggers>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

基本的なアイデアは、前エントリで書いたからいいよね

追加事項といえば、ListBoxItemの表示形式をDataTemplateで指定してるところくらいなので。

トラックバック? どうやって飛ばすんですかね?