2012-10-09 29 views
1

我有我的xaml文件中的列表視圖和文本框。ListView項目應該選擇WPF中的默認啓動

查看:

<ListView Grid.Column="0" ItemsSource="{Binding I2CDeviceList}" SelectedItem="{Binding SelectedI2CDeviceList, Mode=TwoWay}" Name="I2cDeviceList" > 
     <ListView.View> 
       <GridView> 
        <GridViewColumn Header="I2C Device" Width="Auto" DisplayMemberBinding="{Binding I2CDevName}" /> 
        <GridViewColumn Header="I2C Device Address" Width="Auto" DisplayMemberBinding="{Binding I2CDeviceAddress}" /> 
       </GridView> 
     </ListView.View> 
</ListView> 

<TextBox Height="23" Grid.Column="1" Name="AddressI2C" Text="{Binding Path=AddressMessage, Mode=TwoWay}" /> 

視圖模型:

//List View Property 
public ObservableCollection<I2CModel> I2CDeviceList 
    { 
     get { return _I2CDeviceList; } 
     set 
     { 
      _I2CDeviceList = value; 
      NotifyPropertyChanged("I2CDeviceList"); 
     } 
    } 

    private I2CModel _selectedI2CDeviceList; 
    public I2CModel SelectedI2CDeviceList 
    { 
     get { return _selectedI2CDeviceList; } 
     set 
     { 
      _selectedI2CDeviceList = value; 
      AddressMessage = _selectedI2CDeviceList.I2CDeviceAddress; //Displays Address in My textBox 
      NotifyPropertyChanged("SelectedI2CDevSize"); 
     } 
    } 

// Property for textBox 
private string _AddressMessage; 
public string AddressMessage 
    { 
     get 
     { 
      return _AddressMessage; 
     } 
     set 
     { 
      _AddressMessage = value; 
      NotifyPropertyChanged("AddressMessage"); 
     } 
    } 

我的要求是,

當我啓動應用程序,是有可能有第一項列表視圖默認選中?即如果我的列表視圖中的第一項是「Chip Id」,「0x03」,那麼在啓動時它應該被默認選中,地址(0x03)也必須顯示在AddressMessage文本框中。

回答

5

在您的ViewModel中將SelectedI2CDeviceList設置爲啓動時的默認值。我使用ViewModel構造函數來設置SelectedItem,以便當我的窗口啓動時,我的視圖顯示選定的值。

+0

你是對的。謝謝哥們:) – StonedJesus

+0

歡迎:-)如果真的有幫助,那麼不要忘記將其標記爲已接受的答案。 –

+0

也完成和Voteup;) – StonedJesus

6

在XAML中將SelectedIndex設置爲0

+1

我認爲ViewModel是一個很好的做法。 –

+0

@ H.B .:哦,該死的......我不知道它那麼容易。感謝隊友:) – StonedJesus

相關問題