我真的不明白我在這裏做錯了什麼。 這些都是我的課:WPF綁定錯誤
class Filtro
{
public string url;
public string tag;
public string tipo;
public Filtro(string _tipo, string _tag, string _url)
{
url = _url;
tag = _tag;
tipo = _tipo;
}
}
class MainWindow_ViewModel
{
private ObservableCollection<Filtro> _filtros;
public ObservableCollection<Filtro> filtros
{
get
{
return _filtros;
}
}
public MainWindow_ViewModel()
{
_filtros = new ObservableCollection<Filtro>();
_filtros.Add(new Filtro("tipo1","tag1","url1"));
_filtros.Add(new Filtro("tipo2","tag2","url2"));
_filtros.Add(new Filtro("tipo3","tag3","url3"));
_filtros.Add(new Filtro("tipo4","tag4","url4"));
_filtros.Add(new Filtro("tipo5","tag5","url5"));
}
}
public partial class MainWindow : Window
{
static public MainWindow wn;
private MainWindow_ViewModel mwvm;
public MainWindow()
{
wn = this;
mwvm = new MainWindow_ViewModel();
}
}
我有一個XAML和ListBox
我試圖將其綁定到MainWindow.wn.mwvm.filtros
。 (假設我想將它綁定到Filtro.url
字段)。
<Window x:Class="computrabajo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:computrabajo"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainWindow_ViewModel></local:MainWindow_ViewModel>
</Window.DataContext>
...
<ListBox MinHeight="100" ItemsSource="{Binding filtros}">
有了這個代碼,我得到:
無法創建默認的轉換器來執行 '單向' 轉換類型之間 「System.Collections.ObjectModel.ObservableCollection 1 computrabajo.Filtro]! ' 和'System.Windows.Data.BindingGroup'。考慮使用Binding的Converter 屬性。 BindingExpression:路徑=篩選現在; DataItem ='MainWindow_ViewModel'(HashCode = 38845522);目標元素是 'ListBox'(Name ='');目標屬性是「ItemBindingGroup」(類型 「BindingGroup」)
PS:改到ItemsSource
,但現在我得到:
使用綁定和沒有有效的回退值 存在無法檢索值;改爲使用默認值。
'的ItemsSource = {結合篩選現在}''不ItemBindingGroup' – Marshal
填寫列表框項的'ItemBindingGroup' –
您沒有設置的datacontext的地方使用'ItemsSource',做this.DataContext =新MainWindow_ViewModel(); –