1

アイテムのループの問題を無効にするために、コンボボックスのアイテムテンプレートを変更しました (コンボボックスのスクロールは無制限で、タッチモードでは)

<ComboBox.ItemsPanel>
      <ItemsPanelTemplate>
         <StackPanel Orientation="Vertical" />
      </ItemsPanelTemplate>
</ComboBox.ItemsPanel>   

その変更が行われたため、ViewModel から selectedItem を変更できません。

フルコンボボックス:

 <ComboBox BorderBrush="#D4D4D4" Margin="312,64,22,142" Grid.Row="1" 

                          ItemsSource="{Binding TypeRemplissageListe,Mode=TwoWay}"
                          DisplayMemberPath="Name"
                          SelectedValuePath="Value"
                          SelectedValue="{Binding SelectedTypeRemplissage,Mode=TwoWay}"
                          v:FieldValidationExtensions.Format="NonEmpty" Grid.Column="1"
                           >
                    <ComboBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Vertical" />
                        </ItemsPanelTemplate>
                    </ComboBox.ItemsPanel>
  </ComboBox>

ビューモデル:

 private string _selectedTypeRemplissage;
    public string SelectedTypeRemplissage
    {
        get { return _selectedTypeRemplissage; }
        set
        {
            if (_selectedTypeRemplissage != value)
            {
                _selectedTypeRemplissage = value;
                RaisePropertyChanged("SelectedTypeRemplissage");
            }
        }
    }


    SelectedTypeRemplissage = TypeRemplissageListe.ElementAt(0).Name;

DataList クラス:

 public class DataList 
{
    public string Name { get; set; }
    public string Value { get; set; }
}
4

1 に答える 1

0

はい、問題は Itemspanel にあります。Itemspanel には Stackpanel が含まれているため、仮想化が有効になっていないため、選択した項目が強調表示されません。

Stackpanel を Itemsstackpanel に変更すると、機能するはずです。

于 2016-02-17T06:36:01.473 に答える