inflearn logo
강의

講義

知識共有

WPF (.NET Core, C#, 字幕提供)

6) トリガー

버튼 클릭시 progressBar가 100으로 채워지지 않는 현상

解決済みの質問

290

codezero

投稿した質問数 3

0

MainViewModel.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;

namespace WpfApp2.ViewModels
{
  
    internal class MainViewModel
    {

        private int progressValue;

        public int ProgressValue
        {
            get { return progressValue; }
            set 
            { 
                progressValue = value;

   
                NotifyPropertyChanged(nameof(ProgressValue));
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

       
        private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

MainWindow.xaml

<Window x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <Style x:Key="testStyle">
            <Setter Property="Button.Background">
                <Setter.Value>

                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="Black"/>
                        <GradientStop Color="#FF16CEA8" Offset="1"/>
                        <GradientStop Color="#FF0C735E" Offset="0.563"/>
                        <GradientStop Color="#FF0B6C58" Offset="0.533"/>
                    </LinearGradientBrush>

                </Setter.Value>

            </Setter>
            <Style.Triggers>
                <!--progressBar1의 value가 100이면 동작-->
                <DataTrigger Binding="{Binding ElementName=progressBar1,Path=Value}" Value="100">

                    <Setter Property="Control.Visibility" Value="Hidden"></Setter>

                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid>
        <Label Content="제목" Style="{StaticResource testStyle}" Width="100" Height="40" VerticalAlignment="Top"/>
        <Button Content="버튼" Width="200" Height="50" HorizontalAlignment="Left" Style="{StaticResource testStyle}" Click="Button_Click"/>
        <CheckBox x:Name="check1" Content="체크박스" Width="100" Height="40" Margin="23,125,677,269"></CheckBox>
        <ProgressBar x:Name="progressBar1"  Width="200" Height="20" Value="{Binding ProgressValue}"  />

    </Grid>
</Window>

 

MainWindow.cs

using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using WpfApp2.ViewModels;

namespace WpfApp2
{
    
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        MainViewModel viewModel;

        public MainWindow()
        {
            InitializeComponent();

            viewModel = new MainViewModel();

       
            viewModel.ProgressValue = 30;
            DataContext = viewModel;

        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            viewModel.ProgressValue = 100;
                        
            
        }
    }
}

 

실행을 하면 처음 30은 채워져있는데 버튼을 클릭했을 때 100으로 채워지지 않습니다. 물론 100으로 채워지지 않으니 라벨과 버튼이 사라지는 이벤트도 작동하지 않구요. 어떤부분이 잘못 되었는지 몰라서 질문합니다

C#

回答 1

0

vmproductor0202

안녕하세요.개발자park입니다.

https://www.inflearn.com/course/lecture?courseSlug=wpf-subtitles&unitId=111428&tab=curriculum

7:52분초부터 소개되는 내용이 없어보입니다.

추가해주시면 되겠습니다.

감사합니다.

0

codezero

해결했습니다 감사합니다!

OAuth방식 강의 문의

0

11

0

page와 windows 사용구분

0

96

2

Microsoft 패키지 설치 후 Exception 문제

0

129

2

MSSQL 2022 버전을 다운로드해도 되나요?

0

528

7

3강 이미지삽입에서 오류가나옵니다.

0

332

2

이벤트에 대해서 감사합니다.

0

114

2

StartupUri

0

125

1

RelayCommand에서 CanExecute 리턴값 질문

0

221

1

UserControl 관련

0

251

1

sql 설치문의

0

295

1

PropertyChanged/RelayComman 관련

0

341

1

SQL설치관련

0

360

1

3강 .NET 이미지 삽입 방법도 알려주세요

1

250

1

7강부터 어려워집니다.

0

401

1

프로젝트 생성시 질문

0

360

1

6) Trigger - Property 설정 문의

0

421

1

유저컨트롤 관련 질문

0

816

2

<d:Button /> vs <Button/>

0

541

2

릴레이커맨드 비동기로직이 아니어도 asyncrelaycommand로 icommand 만드나요?

1

523

1

소스코드 제공해주세요

0

428

1

섹션 1. WPF의 3) 대표적인 컨트롤러 사용 강의 건에 대하여...

0

401

1

소스코드

0

354

1

CellTemplate에 새로만들기가 안떠요

0

351

1

궁금해서 여쭤봅니다

0

628

1