在.Net中,可以通过使用迭代遍历枚举
System.Enum.GetNames(typeof(MyEnum))
Run Code Online (Sandbox Code Playgroud)
要么
System.Enum.GetValues(typeof(MyEnum))
Run Code Online (Sandbox Code Playgroud)
但是,在Silverlight 3中,未定义Enum.GetNames和Enum.GetValues.有没有人知道另一种选择?
我有一个绑定到DataTable的DataGrid.我想在RowHeader中显示文本,以实现这样的事情:
Col0 Col1 Col2 Col3
Table | 1 | 3 | 5 | 6 |
Chair | 3 | 2 | 1 | 8 |
Run Code Online (Sandbox Code Playgroud)
这是可能的,如果是这样,我该怎么做?
我想有一个水平方向的WPF DataGrid,有没有人知道解决方案?
我希望收到有关ScrollViewer垂直滚动条的VerticalOffset更改的通知.在WPF中有一个ScrollViewer.ScrollChanged事件,但在Silverlight 3中缺少这个事件.有没有人知道解决方法?
我有来自某个来源的物品(来自其他地方):
public class ItemsFromSource{
public ItemsFromSource(string name){
this.SourceName = name;
Items = new List<IItem>();
}
public string SourceName;
public List<IItem> Items;
}
Run Code Online (Sandbox Code Playgroud)
现在在MyClass中,我有来自多个来源的项目(从其他地方填充):
public class MyClass{
public MyClass(){
}
public List<ItemsFromSource> BunchOfItems;
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以一次遍历BunchOfItems中所有ItemsFromSources中的所有Items?即,像:
foreach(IItem i in BunchOfItems.AllItems()){
// do something with i
}
Run Code Online (Sandbox Code Playgroud)
而不是做
foreach(ItemsFromSource ifs in BunchOffItems){
foreach(IItem i in ifs){
//do something with i
}
}
Run Code Online (Sandbox Code Playgroud) 我想在文本框中显示一个包含换行符的字符串,但我希望文本框将其显示为单行。删除换行符不是一个选项;编辑文本后也需要保留它们。
在下面的示例中,在第一个文本框中键入内容时,文本必须以单行形式显示在第二个文本框中。编辑第二个文本框中的文本时,必须保留第一个文本框中的换行符。
有谁知道这是否可能?
<Grid Background="AliceBlue">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="100"/>
</Grid.RowDefinitions>
<TextBox x:Name="FirstTextBox"
AcceptsReturn="True"
TextWrapping="Wrap"
Text="{Binding MyString}"
Width="150"/>
<TextBox x:Name="SecondTextBox"
Grid.Row="1"
AcceptsReturn="False"
TextWrapping="NoWrap"
Text="{Binding MyString}"
VerticalAlignment="Top"/>
</Grid>
Run Code Online (Sandbox Code Playgroud) 我想在XAML中实例化对象,并重用这些实例.我认为它应该很简单但是我被卡住了,我可能会错过一些明显的东西.
假设我想将Cats添加到不同的房间(Room有一个包含Cat类型对象的ObservableCollection).在UserControl.Resources中,我创建了ObjectDataProviders:
<ObjectDataProvider x:Key="Cat1" ObjectType="{x:Type local:Cat}">
<ObjectDataProvider.ConstructorParameters>
<System:String>Tom</System:String>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
<ObjectDataProvider x:Key="Cat2" ObjectType="{x:Type local:Cat}">
<ObjectDataProvider.ConstructorParameters>
<System:String>Garfield</System:String>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
<ObjectDataProvider x:Key="Cat3" ObjectType="{x:Type local:Cat}">
<ObjectDataProvider.ConstructorParameters>
<System:String>Furball</System:String>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
Run Code Online (Sandbox Code Playgroud)
在我的UserControl中,我想将Cats添加到Rooms:
<local:Room x:Name="Room1">
<local:Room.Cats>
</local:Room.Cats>
<local:Room>
<local:Room x:Name="Room2">
<local:Room.Cats>
</local:Room.Cats>
<local:Room>
Run Code Online (Sandbox Code Playgroud)
将Cat实例添加到ObservableCollection Room.Cats的语法是什么?例如,我想将Cat1和Cat2添加到Room1,将Cat2和Cat3添加到Room2.我完全走错了路吗?
我有两个集合,我想在一个表中一起显示.我打算为此使用一个水平DataGrid,我想弄清楚将集合暴露给DataGrid的最佳方法是什么.(这里描述了一个水平DataGrid解决方案:WPF水平DataGrid)
有点椅子和桌子的荒谬的例子.在我的应用程序中,我有一个表列表和一个主席列表(表和主席都有Date和NumberOfItems属性):
public List<Table> TableList { get; set; }
public List<Table> ChairList { get; set; }
Run Code Online (Sandbox Code Playgroud)
在xaml中我想将DataBind添加到一个组合列表中,以便我得到类似的东西:
Date | 01-Jan-2011 | 02-Jan-2011 | 03-Jan-2011 | 04-Jan-2011
Number of tables | 5 | 6 | | 7
Number of chairs | 3 | | 2 |
Run Code Online (Sandbox Code Playgroud)
TableList和ChairList没有相同数量的项目.暴露可绑定组合集合的最佳方法是什么?
我想将 ListBox 数据绑定到链接列表
public class MyClass
{
public string MyText{ get; set; }
public MyClass PreviousItem{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想使用 MyClass 的一个实例作为 ListBox 的数据源,基本上显示 MyClass 实例及其所有 PreviousItems 的列表。
当然,绑定到 MyClass 的实例将导致只显示最顶层的父级。什么是最好的方法?
wpf ×6
data-binding ×3
silverlight ×3
datagrid ×2
list ×2
c# ×1
collections ×1
datasource ×1
datatable ×1
instances ×1
line-breaks ×1
linked-list ×1
object ×1
orientation ×1
row ×1
scrollbar ×1
scrollviewer ×1
textbox ×1
wpfdatagrid ×1
xaml ×1