C # WPF - Невозможно привязать элементы списка к столбцам таблицы вида - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь загрузить список с несколькими свойствами в столбец gridview в виде списка.Я настроил модельный класс, вытащил сетевые адаптеры в список, а также записал привязку в коде xaml.Это все еще не работает.

Я, вероятно, забыл выполнить шаг или использовал неправильную логику.Также я пытался заглянуть в другие темы, но ни одна из них, казалось, не решала проблему, которую я имею.Спасибо за вашу помощь.

.xaml

<ListView Grid.Column="0" Grid.ColumnSpan="2" Width="auto" Margin="10" Name="ListView">
  <ListView.View>
    <GridView AllowsColumnReorder="true" x:Name="GridView">
      <GridViewColumn Header="Name" Width="auto" DisplayMemberBinding="{Binding Name}"/>
     <GridViewColumn Header="Interface" Width="auto" DisplayMemberBinding="{Binding Interface}"/>
      <GridViewColumn Header="Status" Width="auto" DisplayMemberBinding="{Binding Status}"/>
    </GridView>
  </ListView.View>
</ListView >

window.xaml.cs

public MainWindow()
{
  InitializeComponent();
  List<Netadapter> adapters = new List<Netadapter>();
  foreach (NetworkInterface netadapter in NetworkInterface.GetAllNetworkInterfaces())
  {
    Netadapter adapter = new Netadapter(netadapter.Name, netadapter.Description, netadapter.OperationalStatus.ToString());
    adapters.Add(adapter);
  }
  this.DataContext = this;
}

Netadapter.cs (модель)

public class Netadapter
{
  public string Name { get; set; }
  public string Interface { get; set; }
  public string Status { get; set; }

  public Netadapter(string _name, string _interface, string _status)
  {
    this.Name = _name;
    this.Interface = _interface;
    this.Status = _status;
  }
}

1 Ответ

2 голосов
/ 28 марта 2019

Ваш ListView должен ссылаться на список Netadapters.

Прежде всего, сделайте список адаптеров общедоступным свойством:

public MainWindow()
{
    InitializeComponent();
    Adapters = new ObservableCollection<Netadapter>();
    // Add adapters
    this.DataContext = this;
}

public ObservableCollection<Netadapter> Adapters { get; set; }

Во-вторых, привяжите открытую собственность к ListViews ItemsSource:

<ListView Grid.Column="0" Grid.ColumnSpan="2" Width="auto" Margin="10" Name="ListView" ItemsSource="{Binding Adapters}" >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...