1

私のコンボボックス:

 <pmControls:pmComboBox Grid.Row="3" Grid.Column="1" Margin="3"  
  SelectedItem="{Binding Applicable_For,Mode=Two Way}" DisplayMemberPath="Applicable_For"
     SelectedValuePath="Applicable_For">

  <pmControls:pmComboBoxItem Content="Parcel" ></pmControls:pmComboBoxItem>
  <pmControls:pmComboBoxItem Content="Property"></pmControls:pmComboBoxItem>

  </pmControls:pmComboBox>

パーセルとプロパティとしてコンボボックスに2つの静的アイテムを追加し、 binding を使用してこれらの値を取得したいと考えています。

SelectedItem にバインディングを指定し、バインディング フィールドは Applyable_For です。

上記のコードを使用すると、Applicable_For で値が null として取得されます。

編集:Mode=Two Way以前忘れていた選択項目に追加しました。

しかし、「PropMgmt.Controls.pmComboBoxItem」のような名前空間として値を取得するわけではありません

助けてください..

4

1 に答える 1

2

静的項目をコンボ ボックスに追加する代わりに、コレクションを作成できます。例のために。次のようなクラスを作成します。

public class KeyValuePair
{
    string key;

    public string Key
    {
        get { return key; }
        set { key = value; }
    }
    string value;

    public string Value
    {
        get { return this.value; }
        set { this.value = value; }
    }      

}

次に、ビュー モデルに次のコードを追加します。

        ObservableCollection<KeyValuePair> applicable_For_KeyValues = new ObservableCollection<KeyValuePair>();

        KeyValuePair k1 = new KeyValuePair() { Key = "1", Value = "Parcel" };
        KeyValuePair k2 = new KeyValuePair() { Key = "2", Value = "Property" };

        applicable_For_KeyValues.Add(k1);
        applicable_For_KeyValues.Add(k2);

次に、xaml に以下を追加します。

<pmControls:pmComboBox Grid.Row="3" Grid.Column="1" Margin="3" 
 ItemsSource="{Binding Applicable_For_KeyValues}" 
 SelectedValue="{Binding Applicable_For,Mode=TwoWay}" SelectedValuePath="Value">
                <pmControls:pmComboBox.ItemTemplate >
                    <DataTemplate>
                        <TextBlock Text="{Binding Value}"></TextBlock>
                    </DataTemplate>
                </pmControls:pmComboBox.ItemTemplate>        

            </pmControls:pmComboBox>

これで問題が解決することを願っています。

于 2012-11-29T06:41:35.217 に答える