作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我定义了一个Enum,我的意图是在列表框中向用户显示四个选项(无,左,中和右)。该列表框将允许多个选择。单击save命令时,我必须将选择传递给ViewModel,在这里我将聚合选择并将其传递给WCF服务。
枚举:
[DataContract]
[Flags]
public enum Locations
{
None = 0,
[EnumMember]
Left = 1,
[EnumMember]
Center = 2,
[EnumMember]
Right = 4,
[EnumMember]
LeftCenter = Left | Center,
[EnumMember]
LeftRight = Left | Right,
[EnumMember]
CenterRight = Center | Right,
[EnumMember]
All = Left | Center | Right
}
<Button Command="{Binding SaveCommand}"
CommandParameter="{Binding SelectedItems, ElementName=lbLocations}" />
<ListBox x:Name="lbLocations" SelectionMode="Multiple">
<ListBoxItem Content="{x:Static m:Subsections.None}" />
<ListBoxItem Content="{x:Static m:Subsections.Left}" />
<ListBoxItem Content="{x:Static m:Subsections.Center}" />
<ListBoxItem Content="{x:Static m:Subsections.Right}" />
</ListBox>
public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
_saveCommand = new RelayCommand<IList>(x => Save(x));
return _saveCommand;
}
}
private void Save(IList locations)
{
try
{
// ToList() produces InvalidCastException.
var collection = locations.Cast<Locations>().ToList();
// Do WCF stuff, display success, etc.
}
catch (Exception ex)
{
_dialogService.Show(ex.Message, "Error");
}
}
最佳答案
尝试遍历转换列表并将该值聚合到一个变量中,如下所示:
private void Save(IList locations)
{
try
{
Locations location = Locations.None;
foreach (Locations value in locations.Cast<Locations>())
{
location |= value;
}
// Do WCF stuff, display success, etc.
}
catch (Exception ex)
{
_dialogService.Show(ex.Message, "Error");
}
}
关于.net - 从ListBox SelectedItems属性检索枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31656523/
我是一名优秀的程序员,十分优秀!