1
データバインドされたListViewを持つWPFアプリケーションを作成しています。アプリケーションをロードするとき、ListViewColumnsの幅は自動的にリサイズされますが、項目を追加または変更するときには自動的にリサイズされません。私はlistviewをリフレッシュしようとしました。列の幅をauto、-1または-2としてxamlとVB-codeで設定しました。項目を補充する前にitemssourceを何も変更しないでください。データバインドする項目を追加するとListViewColumnsのサイズが変更されます
<ListView x:Name="lsvPersons" Margin="5,5,5,35" ItemsSource="{Binding Persons}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name"/>
<GridViewColumn DisplayMemberBinding="{Binding Gender}" Header="Gender"/>
<GridViewColumn DisplayMemberBinding="{Binding Age}" Header="Age"/>
</GridView>
</ListView.View>
</ListView>
<Button x:Name="btnAddPerson" Content="Add" Height="25" Margin="0,0,200,5" Width="80"/>
SQLデータベースからPerson.getPersonsを持つ人を取得し、コントローラ、との結合作品:これは、XAMLコードでボタンを押した後
Private oController As New MainController()
Public Sub New()
MyBase.New()
Me.InitializeComponent()
Me.DataContext = oController
End Sub
、ウィンドウが開きます人を追加する。ウィンドウが閉じられた後、項目がリストビュー内の項目を更新するコードを、以下にリストビューに追加されますので、
lsvPersons.ItemsSource = Person.getPersons()
を、私は時にリストビューの列を自動的にサイズ変更するに何をすべきかが必要ですアイテムが追加または編集されましたか?
私は 'の場合(adjustAllColumns || fdGridSorted [colNum引数] .AppliedDispGrid)'一部せずにこのコードを試してみたが、それは私のために動作しません。このif文が必要ですか?はいの場合、Visual Basicに相当するものはありますか? – Jona
私の作業コードのコピーであるSprry。もしもアウトを取る。 – Paparazzi
ifを持たないコードはリストビューに何もしないようです。私はカスタムWPFテーマを使用しているので、これがうまくいかない原因かもしれませんか? (リストビューの既定のテーマを使用してテストしましたが、まだ動作しませんでした) – Jona