WPF Combobox 问题请教

ChinaHuNannet 2010-10-26 04:16:20
基于MVVM模式开发的,其中View中相关代码如下:
<TextBlock FontSize="14" Height="25" Name="textBlock2" Text="纸卷品种:" Width="76" />
<ComboBox Height="23" Name="comboBox1" Width="178" ItemsSource="{Binding Observablezjpz}" SelectedValuePath="Key" DisplayMemberPath="Value" SelectedIndex="0" />
在对应的ViewModel中,相关代码如下:
private ObservableCollection<KeyValuePair<string, string>> _observablezjpz = null;

public ObservableCollection<KeyValuePair<string, string>> Observablezjpz
{
get
{
if (_observablezjpz == null)
{
_observablezjpz = GetObservable(paper.纸卷品种.ToString());
}
return _observablezjpz;
}

}

public ObservableCollection<KeyValuePair<string, string>> GetObservable(string _paperiftype)
{
int enumpaper = (int)Enum.Parse(typeof(paper), _paperiftype);
ObservableCollection<KeyValuePair<string, string>> _observableinfo;

_observableinfo = new ObservableCollection<KeyValuePair<string, string>>().PopulateFrom(
from tv in _paperDC.TotalViews
join dv in _paperDC.DetailViews on tv.tvid equals dv.tvid
where tv.tvid == enumpaper & dv.dvstatus == true
select new KeyValuePair<string, string>(dv.dvid.ToString(), dv.dvdisplay));
return _observableinfo;
}
问题是我怎么在ViewModel获取combobox中所选的Key和Value了,不是在View里面,谢谢。
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leon0905 2010-10-27
  • 打赏
  • 举报
回复
如果是在SL中,mode必须设为twoway,默认是oneway的
ChinaHuNannet 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 chinahunannet 的回复:]
基于MVVM模式开发的,其中View中相关代码如下:
<TextBlock FontSize="14" Height="25" Name="textBlock2" Text="纸卷品种:" Width="76" />
<ComboBox Height="23" Name="comboBox1" Width="178" ItemsSource="{Binding Observable……
[/Quote]
已经解决。
ChinaHuNannet 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leon0905 的回复:]
在viewmodel中定义一个属性,把combobox的选中项也绑定了,通过该属性就可以获取选中项
[/Quote]

再说说吧!
ChinaHuNannet 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leon0905 的回复:]
在viewmodel中定义一个属性,把combobox的选中项也绑定了,通过该属性就可以获取选中项
[/Quote]
SelectedItem="{Binding Zjpzvalue}"
--------------------------------------------
viewmodel:
public object Zjpzvalue
{
get { return _zjpzvalue; }
set
{
if (_zjpzvalue != value)
{
_zjpzvalue = value;
OnPropertyChanged("Zjpzvalue");
}
}
}
得到是NULL,所以就根本没有从View中得到数据,谢谢

leon0905 2010-10-26
  • 打赏
  • 举报
回复
在viewmodel中定义一个属性,把combobox的选中项也绑定了,通过该属性就可以获取选中项

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧