2010-02-05 67 views

回答

2

看一看MSDN DridViewColumn details它並沒有表現出這樣的事件,可能需要一些解決方法,但我不確定。有look here

希望它有幫助。

+0

______Thanks :) – 2010-02-05 05:24:36

4

儘管GridViewColumn似乎沒有Resize事件,但您可以綁定到ColumnWidth屬性。

您可以使用下面的示例XAML驗證此情況 - 本示例不需要任何代碼。它只在一個方向上綁定,從列寬到文本框,當你調整大小時,你會看到立即用列寬更新文本框。 (這只是一個簡單的例子;如果你想在代碼中選擇調整大小,我會創建一個帶有Width屬性的類,以便綁定可以在兩個方向上工作)。

<StackPanel> 
    <ListView> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Width="{Binding ElementName=tbWidth1, Path=Text, Mode=OneWayToSource}" /> 
       <GridViewColumn Width="{Binding ElementName=tbWidth2, Path=Text, Mode=OneWayToSource}" /> 
      </GridView> 
     </ListView.View> 
     <ListViewItem>Item 1</ListViewItem> 
     <ListViewItem>Item 2</ListViewItem> 
    </ListView> 
    <TextBox Name="tbWidth1" /> 
    <TextBox Name="tbWidth2" /> 
</StackPanel> 
25

我會處理PropertyChanged事件。該PropertyChanged事件不會出現在Visual Studio的智能感知,但你可以欺騙它:)

GridViewColumn column = ... 
((System.ComponentModel.INotifyPropertyChanged)column).PropertyChanged += (sender, e) => 
{ 
    if (e.PropertyName == "ActualWidth") 
    { 
     //do something here... 
    } 
}; 
+0

很不錯的(+1)。有關此技術在附加屬性中的實現,請參閱:http://wpftoolbelt.codeplex.com/SourceControl/changeset/view/33225#457436。 – 2011-01-04 20:41:45