programing

MVVM: ListBox에 바인딩하고 있습니다.선택된항목이 업데이트되지 않습니까?

yellowcard 2023. 4. 15. 08:41
반응형

MVVM: ListBox에 바인딩하고 있습니다.선택된항목이 업데이트되지 않습니까?

뷰 모델 속성을 ListBox에 바인딩하려면 어떻게 해야 합니까?선택된아이템 속성?

이 문제를 해결하기 위해 간단한 MVVM 데모를 만들었습니다.내 뷰 모델에는 다음과 같은 속성이 있습니다.

private ObservableCollection<DisneyCharacter> p_DisneyCharacters;
public ObservableCollection<DisneyCharacter> DisneyCharacters
{
    get { return p_DisneyCharacters; }

    set
    {
        p_DisneyCharacters = value;
        base.FirePropertyChangedEvent("DisneyCharacters");
    }
}

private DisneyCharacter p_SelectedItem;
public DisneyCharacter SelectedItem
{
    get { return p_SelectedItem; }

    set
    {
        p_SelectedItem = value;
        base.FirePropertyChangedEvent("SelectedItem");
    }
}

Selected를 바인드하고 싶다목록 상자에서 선택한 항목에 대한 항목 속성입니다.목록 상자의 XAML을 다음에 나타냅니다.

<ListBox ItemTemplate="{StaticResource MasterTemplate}"
         ItemsSource="{Binding Path=DisneyCharacters}" 
         SelectedItem="{Binding Path=Selectedtem, Mode=TwoWay}" 
         HorizontalAlignment="Stretch" />

제 고민은 다음과 같습니다.뷰 모델 선택됨목록 상자에서 선택을 변경해도 항목 속성이 업데이트되지 않습니다.

뷰 모델을 임시로 교체하는 테스트를 수행했습니다. 선택됨[ Selected ]가 있는 항목 속성인덱스 속성을 ListBox에 바인딩했습니다.선택된인덱스 속성그 속성은 정상적으로 갱신되었습니다.그냥 Selected(선택)입니다.작업을 수행할 수 없는 아이템 자산입니다.

그러면 Selected를 수정하려면아이템 바인딩?도와주셔서 고마워요.

자, 여기 있네요. 실물만큼 크죠.XAML에서는 다음과 같은 뷰 모델 속성에 바인딩되어 있었습니다.

Selectedtem
       ^^

아쉽게도 실제 이름은SelectedItem이 코드는 실제로 동작하고 있습니다.오늘 오후 일찍 문제를 해결하고 나서 오후와 저녁 내내 웹을 뒤지며 철자 오류를 알아챘습니다.

아내는 오늘 오후 3시에 나에게 말했다. "알다시피, 작은 일이 될 야."그래서 그렇게 된 거야 편지 한 통이 없어졌어I음, 적어도 지금은 잘 수 있잖아.

언급URL : https://stackoverflow.com/questions/1384369/mvvm-binding-to-listbox-selecteditem-isnt-being-updated

반응형