C#/wpf : ListView 업데이트되지 않음 (그러나 Snoop으로 확인하면 모든 것이 잘 보입니다)

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

  •  22-07-2019
  •  | 
  •  

문제

다음 코드가있는 내 목록 뷰가 작동하지 않는 이유를 아는 사람이 있습니까? 스누프로 확인했고 항목 소스는 괜찮은 것 같습니다 (그리고 스누프를 시작할 때 ListView는 MyViewModel.MyCollection을 표시하지만 Visual Studio로 디버깅 할 때 아무것도 표시하지 않습니까?)

고맙습니다!

추신 : mainWindow.xaml.cs에는 datacontext = mainViewModel이 있습니다

    <ListView Grid.Row="1" Margin="38,50,0,168" HorizontalAlignment="Left" Name="listViewSelectDate" Width="105"
              ItemsSource="{Binding Path=MyViewModel.MyCollection}" 
              SelectedItem="{Binding SelectedDate}" IsSynchronizedWithCurrentItem="True">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Date" DisplayMemberBinding="{Binding Path=CalcDate}"/>
            </GridView>
        </ListView.View>
    </ListView>

뷰 모델은 다음과 같습니다.

class MainViewModel : ViewModelBase
{
    public SummaryViewModel MyViewModel
    {
        get { return _myViewModel; }
        set { _myViewModel = value; RaisePropertyChanged("MyViewModel"); }
    }
    public MyDate SelectedDate
    {
        get { return _selectedDate; }
        set { _selectedDate = value; RaisePropertyChanged("SelectedDate"); }
    }
}

그리고

public class SummaryViewModel : ViewModelBase
{
    public ObservableCollection<MyDate> MyCollection { get; set; }
}

그리고

public class MyDate
{
    public DateTime CalcDate { get; set; }
}
도움이 되었습니까?

해결책

누가 설정합니다 MyCollection? 변경 알림을 제공하지 않으므로 바인딩은 변경되었음을 알지 못합니다. 로 변경:

private ObservableCollection<MyDate> _myCollection;
public ObservableCollection<MyDate> MyCollection
{
    get { return _myCollection; }
    set
    {
        _myCollection = value;
        OnPropertyChanged("MyCollection");
    }
}

또는 더 나은 것은 읽기 전용으로 만듭니다.

private readonly ICollection<MyDate> _myCollection = new ObservableCollection<MyDate>();

public ICollection<MyDate> MyCollection
{
    get { return _myCollection; }
}

다른 팁

Visual Studio 출력 창을 살펴보면 문제를 해결하는 데 도움이 될 수있는 모든 데이터 바인딩 오류가 표시됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top