UserControl的datagrid中下拉框绑定BindableCollectionNoNeedDetails中的值NoNeedDetails的详细代码为 public class NoNeedDetails NotifyBase ICheckable JsonIgnore public string PrimaryKey get; set;
根据您提供的代码,以下是一个可能的WPF MVVM模式实现的详细设计代码示例:
- 创建一个名为NoNeedDetailsViewModel的视图模型类,该类将作为UserControl的DataContext。
public class NoNeedDetailsViewModel : NotifyBase
{
private ObservableCollection<NoNeedDetails> _items;
public ObservableCollection<NoNeedDetails> Items
{
get { return _items; }
set { _items = value; DoNotify(); }
}
public NoNeedDetailsViewModel()
{
// 初始化Items集合并添加数据
Items = new ObservableCollection<NoNeedDetails>();
Items.Add(new NoNeedDetails());
Items.Add(new NoNeedDetails());
// 添加其他数据项...
}
}
- 在XAML中,将UserControl的DataContext绑定到NoNeedDetailsViewModel实例,并设置DataGrid的ItemsSource属性绑定到NoNeedDetailsViewModel的Items集合。
<UserControl x:Class="YourNamespace.YourUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:YourNamespace"
DataContext="{Binding RelativeSource={RelativeSource Self}, Path=ViewModel}">
<Grid>
<DataGrid ItemsSource="{Binding Items}">
<DataGrid.Columns>
<!-- 定义其他列... -->
<DataGridComboBoxColumn Header="Select Package"
SelectedItemBinding="{Binding SelectPackage}"
DisplayMemberPath="SubPackageName" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>
- 在UserControl的代码文件中,定义一个名为ViewModel的依赖属性,用于将NoNeedDetailsViewModel实例传递给UserControl。
public partial class YourUserControl : UserControl
{
public static readonly DependencyProperty ViewModelProperty =
DependencyProperty.Register("ViewModel", typeof(NoNeedDetailsViewModel), typeof(YourUserControl));
public NoNeedDetailsViewModel ViewModel
{
get { return (NoNeedDetailsViewModel)GetValue(ViewModelProperty); }
set { SetValue(ViewModelProperty, value); }
}
public YourUserControl()
{
InitializeComponent();
}
}
- 在主窗口或其他使用UserControl的地方,创建NoNeedDetailsViewModel实例,并将其赋值给UserControl的ViewModel属性。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var viewModel = new NoNeedDetailsViewModel();
yourUserControl.ViewModel = viewModel;
}
}
通过以上的设计和代码,您应该能够实现将BindableCollection
原文地址: http://www.cveoy.top/t/topic/hXIE 著作权归作者所有。请勿转载和采集!