我在Silverlight中有一个ComboBox,它的行为非常不一致.
我将ComboBox绑定到动态数据集合,其中添加或删除了元素.这是ComboBox的XAML:
<ComboBox Margin="0,-1,0,0" Width="20" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ItemsContained}" x:Name="TabComboBox" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="White" MinWidth="250" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
所以这很好用,ComboBox用ItemsContained中的长项列表打开"up".但是,如果我删除ItemsContained中的一个项目,当你点击它时,ComboBox会突然从打开"向上"切换到打开"向下",尽管这个集合中有很多项目,它只有20个左右的像素空间可以打开.我无法弄清楚这一点.我甚至尝试将ItemsPanelTemplate设置为具有MinHeight,但这没有帮助.有谁知道如何使ComboBox始终打开"up"?
而且,即使我将MinHeight设置为荒谬的东西,例如10,000,它仍然会这样做.
编辑:作为更新,每次更改ItemsContained时,我都会通过创建一个全新的ComboBox来实现这一点.这是代码:
scrollingGrid.Children.Remove(tabComboBox);
tabComboBox.ItemsSource = null;
ComboBox boxy = new ComboBox()
{
ItemsSource = ItemsContained
};
scrollingGrid.Children.Add(boxy);
tabComboBox = boxy;
Run Code Online (Sandbox Code Playgroud)
我觉得这有点特别,所以如果有人有更好的想法,请告诉我.在ComboBox中更改ScrollViewer的高度也不起作用.
我无法升级到Xcode 4,因为我仍在运行Snow Leopard并且我的计算机没有支持Lion的硬件.无论如何我还能获得iOS 5 SDK吗?我查看了Apple的网站,但我只看到iOS 4.2 for Xcode 3.2.6.
我有一个网格,我试图在Silverlight中以编程方式创建和填充.但是,尽管我努力,但所有项目都默认在网格中发现"0,0".这就是我所拥有的:
Grid holdingGrid = new Grid();
int row = 0;
for (int i = 0; i < 10; i++) {
Expander expander = new Expander();
holdingGrid.Children.Add(expander);
Grid.SetRow(expander, row);
Grid.SetColumn(expander, 0);
row++;
}
Run Code Online (Sandbox Code Playgroud)
但是这仍然会导致所有项目堆积在第一行和第一列中.我究竟做错了什么?
我有一个UITableView,我在Interface Builder中默认设置为隐藏.我想设置它以便用户点击按钮并以编程方式显示UITableView.
是否有一些方法可以调用我的UITableView对象以改变其可见性?
我正在尝试编写一个自定义的正式协议,我遇到了Xcode警告的问题.特别:
if([self.delegate conformsToProtocol:@protocol(myProtocol)]){
[self.delegate myProtocolMethod];
}
Run Code Online (Sandbox Code Playgroud)
这在运行时完全正常,但Xcode一直给我"NSObject可能不响应-myProtocolMethod"警告.我真的想删除警告,所以我在这里做错了吗?