[英]How to bind to a property of a class instantiated in the current class
我有兩個分類, MainWindow
和MainWindow_ViewModel
。
MainWindow
的定義如下:
public partial class MainWindow : Window
{
static public MainWindow wn;
public MainWindow_ViewModel mwvm;
public MainWindow()
{
InitializeComponent();
wn = this;
mwvm = new MainWindow_ViewModel();
}
}
MainWindow_ViewModel的定義如下:
class MainWindow_ViewModel
{
private List<String> _filtros;
public List<String> filtros
{
get
{
return _filtros;
}
}
public MainWindow_ViewModel()
{
_filtros = new List<String>();
_filtros.add("Filtro1");
_filtros.add("Filtro2");
_filtros.add("Filtro3");
}
}
請注意,沒有任何靜態方法或屬性。
在MainWindow的XAML中,我有一個想要與mwvm.filtros
綁定的mwvm.filtros
,應該直接從后台代碼中使用它們。
MainWindow.wn.mwvm.filtros
。 當然是。 您不需要C#代碼來綁定視圖模型。 只需在DataContext
元素中創建一個對象:
<Window.DataContext>
<local:MainWindow_ViewModel />
</Window.DataContext>
但是,您必須為本地項目創建一個名稱空間。 完整代碼:
<Window x:Class="Your.Namespace.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Your.Namespace"
>
<Window.DataContext>
<local:MainWindow_ViewModel />
</Window.DataContext>
除非您將其傳遞給其他Window
或Control
,或者將其設置為靜態,否則您不能與之綁定。 如果它是此Window
子控件,則可以設置其數據上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.