第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WPF INotifyDataErrorInfo 突出顯示 ListBoxItem

WPF INotifyDataErrorInfo 突出顯示 ListBoxItem

C#
炎炎設計 2022-06-19 16:45:34
我有一個ListBox這樣的:<ListBox Margin="5" ItemsSource="{Binding NetworkAdapters, Mode=OneWay}" SelectedItem="{Binding SelectedNetworkAdapter}" SelectionChanged="{s:Action SelectedNetworkAdapterChanged}">    <ListBox.ItemsPanel>        <ItemsPanelTemplate>            <UniformGrid Columns="2" VerticalAlignment="Top"/>        </ItemsPanelTemplate>    </ListBox.ItemsPanel>    <ListBox.ItemTemplate>        <DataTemplate>            <StackPanel Orientation="Horizontal">                <Ellipse Width="15" Height="15" Margin="5">                    <Ellipse.Style>                        <Style TargetType="Ellipse">                            <Setter Property="Fill" Value="Gray"></Setter>                            <Style.Triggers>                                <DataTrigger Binding="{Binding Status}" Value="{x:Static wpf:NetworkAdapterStatus.Up}">                                    <Setter Property="Fill" Value="Green"></Setter>                                </DataTrigger>                                <DataTrigger Binding="{Binding Status}" Value="{x:Static wpf:NetworkAdapterStatus.Down}">                                    <Setter Property="Fill" Value="Red"></Setter>                                </DataTrigger>                            </Style.Triggers>                        </Style>                    </Ellipse.Style>                </Ellipse>使用當前的 XAML,如果任何視圖模型中存在錯誤,則整個視圖模型ListBox將突出顯示為紅色,但我希望只ListBoxItems突出顯示包含錯誤的單個。我看過類似的問題,例如:WPF ListBox ErrorTemplate和 驗證 ListBoxItem 而不是 ListBox但我仍然無法完成這項工作。任何幫助,將不勝感激。
查看完整描述

2 回答

?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

您需要實現(xiàn)ItemContainerStyle如下:


    <ListBox.ItemContainerStyle>

        <Style TargetType="ListBoxItem">

            <Setter Property="BorderThickness" Value="1" />

            <Setter Property="BorderBrush" Value="Transparent" />

            <Style.Triggers>

                <DataTrigger Binding="{Binding Validation.HasErrors}" Value="True">

                    <Setter Property="BorderBrush" Value="Red"/>

                </DataTrigger>

            </Style.Triggers>

        </Style>

    </ListBox.ItemContainerStyle>

這將使您能夠更改ListBoxItem自身的邊框,從而使整個事物隨心所欲。


查看完整回答
反對 回復 2022-06-19
?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

您可以忘記 ErrorTemplate 并僅使用 DataTrigger 綁定到Validation.HasErrors:


  <StackPanel>

                        <StackPanel.Resources>

                            <Style TargetType="{x:Type StackPanel}" BasedOn="{StaticResource {x:Type StackPanel}}">

                                <Style.Triggers>

                                    <DataTrigger Binding="{Binding Validation.HasErrors}" Value="True"> <!-- change all text to red -->

                                        <Setter Property="Foreground" Value="Red"/>

                                    </DataTrigger>

                                </Style.Triggers>

                            </Style>

                        </StackPanel.Resources>

</StackPanel>

如果你想要一個高亮,你可以用一個 Border 包裹 StackPanel 并在一個樣式中將它的顏色設置為紅色。


查看完整回答
反對 回復 2022-06-19
  • 2 回答
  • 0 關注
  • 218 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號