0
public class ToolBarView : ToolBar
{
public ToolBarView()
{
this.DataContext = new ToolBarViewModel();
}
}
public ToolBarViewModel: ViewModelBase
{
public ObservableCollection<ViewModelBase> Items {get;set;}
public ToolBarViewModel()
{
// populate button view models
Items.Add(new ButtonViewModel() {Content="Button1"});
Items.Add(new ButtonViewModel() {Content="Button2"});
}
}
public class ButtonView : Button
{
public ButtonView()
{
this.DataContext = new ButtonViewModel();
}
}
public class ButtonViewModel : ViewModelBase
{
public object Content {get;set;}
}
要查看MainWindow.xaml綁定視圖模型的數據模板
<Window.Resources>
<DataTemplate x:Key="buttonTemplate" DataType="{x:Type vm:ButtonViewModel}">
<v:ButtonView Content={Binding Content}/>
</DataTemplate>
<v:ToolBarView ItemsSource="{Binding Items}"
ItemTemplate={StaticResource buttonTemplate}/>
注:我在ViewModelBase類
並INotifyChanged在MainWindow.xaml。我認爲我的模板是錯誤的.ButtonView在DataTemplate中創建一個新的視圖實例。它沒有綁定在ToolBar Items集合中出現的viewModel。我試圖用相對綁定。仍然不成功。 請幫我一把。
嗨HB你能澄清一點點嗎?抱歉,我對MVVM非常陌生,但仍然很掙扎。我必須在ButtonVM構造函數中刪除綁定嗎?我如何覆蓋DataContext。它會在數據模板中嗎?我想我試圖從VM創建視圖.VM將從xml設置創建。非常感謝 – user1202484 2012-02-10 17:46:17
@ user1202484:Gaah,不,我無法澄清。沒時間。如果這太多了,你有四處看看,關於MVVM教程等有很多問題。 – 2012-02-10 18:23:44
謝謝。我已經看了很多。我覺得我很親密。無論如何,再次感謝。 – user1202484 2012-02-10 18:39:36