【发布时间】:2020-02-08 19:18:13
【问题描述】:
我还是 MVVM/WPF 的新手,在我的控制下,我创建了一个网格,当用户点击一行时,我希望它做一些事情。目前,我在我的代码中在视图上执行了一些代码。这个可以吗?因为视图需要从模型中访问数据,或者我怎样才能完全分离视图和模型?
目前,我有这个...
// our View Window
public partial class MarketPriceView : UserControl
{
public MarketPriceView()
{
InitializeComponent();
}
private void OHLCChart_Click(object sender, RoutedEventArgs e)
{
// MarketPriceGrid is our model
var cell = GridData.SelectedItem as MarketPriceGrid;
string prod = cell.ProdCode;
// do something with prod ...
}
}
我的 XAML 我有一个数据网格
<DataGrid x:Name="GridData" ItemsSource="{Binding MarketPriceGrid}">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="OHLC Chart" Click="OHLCChart_Click"/>
</ContextMenu>
</DataGrid.ContextMenu>
...
</DataGrid>
这样好吗?或者在不破坏 MVVM 模式的情况下我应该如何去做?
【问题讨论】:
-
当您没有 ViewModel 时,它不是 MVVM 实现。你不能破坏不存在的东西
标签: c# wpf mvvm data-binding