добавить маску в список недоступных элементов UWP - PullRequest
0 голосов
/ 07 октября 2018

У меня был просмотр списка UWP, который я связал со списком обычным способом.(Имеется в виду не случайность здесь). Сейчас, когда у меня был недоступный элемент, я просто удаляю его из списка.Но я хочу, чтобы пользователь мог видеть, что эти элементы существуют, но сейчас недоступны.Чтобы объяснить мою проблему, вот список https://i.stack.imgur.com/CIU1p.png А вот фотомонтаж, что я хочу, если предмет недоступен https://i.stack.imgur.com/gCV2k.png Я ищу, но не могу найти, возможно ли это сделать даже с помощьюUWP listview.Спасибо

1 Ответ

0 голосов
/ 08 октября 2018

Это распространенный формат XAML и обязательный вопрос.Чтобы выполнить ваши требования, вам нужно поместить слой в ваш DataTemplate, затем вы можете скрыть / показать его в соответствии с его доступностью / недоступностью.

Я сделал простой пример кода для вашей справки:

<ListView ItemsSource="{x:Bind tests}">
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="local:Test">
                <Grid>
                    <Border Background="Gray" Visibility="{x:Bind IsAvailable}"  Opacity="0.8">
                        <TextBlock Text="NOT AVAILABLE" Foreground="White" FontWeight="Bold" FontSize="50"></TextBlock>
                    </Border>
                    <StackPanel Orientation="Horizontal" >
                        <TextBlock Text="{x:Bind Name}"></TextBlock>
                        <TextBlock Text="{x:Bind Score}" Margin="20 0 0 0"></TextBlock>
                        <TextBlock Text="{x:Bind Cote}" Margin="20 0 0 0"></TextBlock>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
</ListView>
public sealed partial class MainPage : Page
{
    public ObservableCollection<Test> tests;
    public MainPage()
    {
        this.InitializeComponent();
        tests = new ObservableCollection<Test>();
        tests.Add(new Test() {Name="Star",Score=10,Cote=2.8,IsAvailable=Visibility.Collapsed });
        tests.Add(new Test() { Name = "Cera", Score = 0, Cote = 6.6, IsAvailable = Visibility.Visible });
    }
}

public class Test:INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string PropertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this,new PropertyChangedEventArgs(PropertyName));
        }
    }

    private string name;
    public string Name
    {
        get { return name; }
        set
        {
            name = value;
            RaisePropertyChanged("Name");
        }
    }

    private int score;
    public int Score
    {
        get { return score; }
        set
        {
            score = value;
            RaisePropertyChanged("Score");
        }
    }

    private double cote;
    public double Cote
    {
        get { return cote; }
        set
        {
            cote = value;
            RaisePropertyChanged("Cote");
        }
    }

    private Visibility isAvailable;
    public Visibility IsAvailable
    {
        get { return isAvailable; }
        set
        {
            isAvailable = value;
            RaisePropertyChanged("IsAvailable");
        }
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...