فقدت WPF ListViewItem الحدث تحت المجهر - كيفية الحصول على الحدث؟

StackOverflow https://stackoverflow.com/questions/466555

سؤال

ولدي listview التي تحددها على التوالي / البند المتعلق. ويرتبط هذا إلى datatrigger أن يعرض صورة على التوالي. يجب فقط يتم عرض الصورة عند تحديد صف واحد.

وهذا الجزء يعمل بشكل جيد، ولكن عند نقل التركيز إلى شيء آخر، مثل مربع نص، أو يتم عرض MESSAGEBOX، يفقد listviewitem التركيز أي من تسليط الضوء على التوالي لم يتم عرضه. والمشكلة هي أن صورة بلدي ما زال قائما. وينبغي أن يكون مخفي / انهار عندما يفقد يكون ListView التركيز ... ويعمل بشكل جيد إذا قمت بتحديد عنصر آخر / التوالي يوم يكون ListView.

ويمكن لأي شخص أن تساعد على هذا الرجاء؟

<Style x:Key="deleteImageStyle" TargetType="{x:Type Image}">
    <Setter Property="Source" Value="Resources/iconDelete.png" />
    <Setter Property="Margin" Value="0,2,5,0" />
    <Setter Property="Height" Value="16" />
    <Setter Property="Width" Value="16" />
    <Setter Property="HorizontalAlignment" Value="Right" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Setter Property="Cursor" Value="Hand" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
            <Setter Property="Visibility" Value="Visible"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="False">
            <Setter Property="Visibility" Value="Hidden"/>
        </DataTrigger>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Visibility" Value="Hidden" />
        </Trigger>
    </Style.Triggers>
</Style>

والتحيات

وTravisPUK

نصائح أخرى

وBubblewrap،

وشكرا على هذه المعلومات، وهذا حصل بشكل جيد حول هذه المسألة. وفقا لأقل كان لي أن أضيف في كلتا الحالتين كما لا يبدو الافتراضي نافذ المفعول ... ولكن لم أحاول طريقة MultiTrigger بعد، سوف تفعل في وقت لاحق.

وهذا هو ما انتهى إليه في نهاية المطاف.

<Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
                <Setter Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsFocused}" Value="True">
                <Setter Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="False">
                <Setter Property="Visibility" Value="Hidden"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsFocused}" Value="False">
                <Setter Property="Visibility" Value="Hidden"/>
            </DataTrigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Visibility" Value="Hidden" />
            </Trigger>
        </Style.Triggers>

وشكرا لمساعدتكم، وهذا سيحصل لي في الماضي قضية بلدي في الوقت الراهن. أعتقد أن بلدي ISENABLED الزناد وربما زائدة على الرغم من الآن.

والشكر

وTravisPUK

scroll top