2013-04-18 63 views
2

如何綁定到在列表視圖中顯示並正在雙擊的數據模板?如何獲取列表視圖數據模板項雙擊WPF MVVM

我想smthing這樣的:

<CheckBox Grid.Column="1" Grid.Row="5" Command="{Binding AddItemCommand}"></CheckBox> 

我已經完成這一切,但不知道如何將命令列表視圖或在DataTemplate中網格綁定到一個DataTemplate。

Datatempalte是這樣的:

<DataTemplate x:Key="ServerViewItemTemplate" DataType="ViewModel:ServerViewModel"> 
     <Border BorderBrush="Black" BorderThickness="1" Margin="10"> 

      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="70" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 

       <Grid.RowDefinitions> 
        <RowDefinition Height="20" /> 
        <RowDefinition Height="20" /> 
        <RowDefinition Height="20" /> 
        <RowDefinition Height="20" /> 
        <RowDefinition Height="20" /> 
        <RowDefinition Height="20" /> 
       </Grid.RowDefinitions> 

       <TextBlock Grid.Column="0" Grid.Row="0" Text="ServerId:" FontWeight="Bold"/> 
       <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding ServerId}" FontWeight="Bold"/> 
       <TextBlock Grid.Column="0" Grid.Row="1" Text="Login:"/> 
       <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Login}" /> 
       <TextBlock Grid.Column="0" Grid.Row="2" Text="Password:"/> 
       <TextBlock Grid.Column="1" Grid.Row="2" Text="{Binding Password}" /> 
       <TextBlock Grid.Column="0" Grid.Row="3" Text="Type:"/> 
       <TextBlock Grid.Column="1" Grid.Row="3" Text="{Binding Type}" /> 
       <TextBlock Grid.Column="0" Grid.Row="4" Text="IpAddress:"/> 
       <TextBlock Grid.Column="1" Grid.Row="4" Text="{Binding IpAddress}" /> 
       <TextBlock Grid.Column="0" Grid.Row="5" Text="Include:"/> 
       <CheckBox Grid.Column="1" Grid.Row="5" Command="{Binding AddItemCommand}"></CheckBox> 
      </Grid> 
     </Border> 
    </DataTemplate> 

所以,如果它是雙擊它應該調用ICommand的,一樣的複選框AddItemCommand。

+0

。 – blindmeis

+0

我有一個包含數據模板的列表視圖,我想處理雙擊數據模板。 – user1669713

+0

請更新您的問題並提供更多信息 – blindmeis

回答

1

我會建議一個行爲來處理雙擊事件。根據您雙擊時要執行的操作,您可能需要在行爲中添加一個ICommand依賴屬性,以便綁定到視圖模型上的命令。

這裏有一個類似的帖子:Is there a way in XAML to select all text in textbox when double clicked?

在這個例子中,用戶在一個TextBox中選擇文本時雙擊了。

更多:

你的XAML會是這個樣子:

<DataTemplate x:Key="ServerViewItemTemplate" DataType="ViewModel:ServerViewModel"> 
    <Border BorderBrush="Black" BorderThickness="1" Margin="10"> 

     <Grid> 
      <e.Interaction.Behaviors> 
       <local:DoubleClickBehavior Command="{Binding Path=AddItemCommand}"/> 
      </e.Interaction.Behaviors> 

      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="70" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
... ... 
如果你想顯示與一個DataTemplate什麼,只是對象綁定到contentpresenter Content屬性
+0

我剛剛更新了我的問題,希望它能幫助你,幫助我=) – user1669713

+0

你應該真的添加更多的代碼。添加你的'DataTemplate',更好地解釋你想要發生什麼。我已經給你一個如何處理雙擊的例子。如果我給你的東西不足以回答你的問題,我需要更多信息。 – Thelonias

+0

我已添加DataTemplate – user1669713

相關問題