0

リストビューコントロールを持つwpfアプリケーションを開発しています。私はwpfが初めてです。しかし、いくつかのスタイルを追加し、以下のようにリストビュー内に水平グリッド線を表示することができました.

 <DataTemplate x:Key="IDBorderedCellTemplate">

                <Border BorderBrush="Black" Margin="0,5,0,1"

                BorderThickness="0,0,0,1" >

                    <TextBlock Foreground="MediumBlue" FontFamily="Calibri" Margin="3,0,0,2" Text=""
                />

                </Border>
            </DataTemplate>


 <ListView.View>

                <GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">

                    <!-- Product ID -->

                    <GridViewColumn



          CellTemplate="{StaticResource IDBorderedCellTemplate}">

今私の問題は、グリッド線のみを表示しているウィンドウがロードされたときにリストビューにアイテムを表示できないことです。私の要件は、ファイルを参照する参照ボタンがあるため、これらの参照ファイルをリストビューに表示する必要があります。

ロードイベントと同様に、次のコード行を追加しています。

    try
    {

        listviewitem = new ListViewItem();
        //displays only the filename in the listview
        listviewitem.Content = System.IO.Path.GetFileName(_name);
        _listFiles.Items.Add(listviewitem);
    }
    catch (Exception)
    {
   }

xaml で gridview 設定を追加した後、このデータは listview に表示されません。グリッド線のみが表示されるようになりました。提案/ヘルプはかなりのものです。

よろしくラヴィ

4

1 に答える 1

0

listviewItem を使用する代わりに、listview の ItemsSource を ObservableCollection または BindingList として選択して、動的/頻繁に変更されるデータを取得します。

XAML

  <ListView  Name="listView1" ItemsSource="{Binding FileStore}">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="120" Header="Files" DisplayMemberBinding="{Binding}" />
        </GridView>
    </ListView.View>
 </ListView>

C#

 public partial class MainWindow : Window
 {
   public ObservableCollection<string> fileList= new ObservableCollection<string>();

    public MainWindow()
    {
       InitializeComponent();
        this.DataContext = this;
       // Add files to fileList (ObservableCollection)  
    }

    public ObservableCollection<string> FileStore
   {
      get { return fileList; }
   } 
  }

参照ボタンのクリックや読み込みなど、どこでも ObservableCollection に項目を追加できます。

于 2013-02-05T07:04:11.387 に答える