Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止更改ListView中的选择_C#_Xaml_Listview_Selection - Fatal编程技术网

C# 防止更改ListView中的选择

C# 防止更改ListView中的选择,c#,xaml,listview,selection,C#,Xaml,Listview,Selection,我有一个列表视图。我想阻止更改选择 <ListView SelectionMode="Single" MinHeight="400" ItemsSource="{Binding Partners}" SelectedItem="{Binding SelectedPartner, Mode=TwoWay}"> <ListView.View> <GridView> <Header="ID" DisplayMe

我有一个列表视图。我想阻止更改选择

<ListView SelectionMode="Single" MinHeight="400" ItemsSource="{Binding Partners}" SelectedItem="{Binding SelectedPartner, Mode=TwoWay}">
    <ListView.View>
        <GridView>
             <Header="ID" DisplayMemberBinding="{Binding partnerId}"/>             
        </GridView>
    </ListView.View>
</ListView>

它被正确调用,但新/旧选择的突出显示仍然更改。

我认为最简单的解决方案是在用户从ListView中选择项后将属性设置为false

public Partner SelectedPartner
{
    get { return _selectedPartner; }
    set
    {
        if (_selectedPartner == null) //when it isn't selected I select to new value
        {
            _selectedPartner = value;
            NotifyPropertyChanged("SelectedPartner");
        }
        else // when it is selected I don't change value and I want to do not change highlighting in view
        {
            NotifyPropertyChanged("SelectedPartner");
        }
    }
}
<ListView SelectionMode="Single" MinHeight="400" ItemsSource="{Binding Partners}" 
          SelectedItem="{Binding SelectedPartner, Mode=TwoWay}">
    <ListView.Style>
        <Style TargetType="ListView">
            <Setter Property="IsEnabled" Value="False"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedPartner}" Value="{x:Null}">
                    <Setter Property="IsEnabled" Value="True"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ListView.Style>
    <ListView.View>
       ...
    </ListView.View>
</ListView>