我想创建一个下拉列表作为属性的编辑器; 如果我只有字符串作为下拉列表的条目,这将工作正常(使用StringConverter).但是,当我尝试使用对象列表而不是字符串时,这不起作用(注意它对于正常的组合框是如何工作的!)这是我的代码:
public static List<Bar> barlist;
public Form1()
{
InitializeComponent();
barlist = new List<Bar>();
for (int i = 1; i < 10; i++)
{
Bar bar = new Bar();
bar.barvalue = "BarObject " + i;
barlist.Add(bar);
comboBox1.Items.Add(bar);
}
Foo foo = new Foo();
foo.bar = new Bar();
propertyGrid1.SelectedObject = foo;
}
public class Foo
{
Bar mybar;
[TypeConverter(typeof(BarConverter))]
public Bar bar
{
get { return mybar; }
set { mybar = value; }
}
}
public class Bar
{
public …Run Code Online (Sandbox Code Playgroud) 我试图通过上下文菜单显示/隐藏数据网格的列.我试图使用绑定,使用此XAML:
<Grid>
<DataGrid AutoGenerateColumns="False" Name="dataGrid1">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Show Column 1" IsCheckable="True"
x:Name="showcol1" IsChecked="True" />
<MenuItem Header="Show Column 2" IsCheckable="True"
x:Name="showcol2" IsChecked="False" />
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Columns>
<DataGridTextColumn Header="Col 0" />
<DataGridTextColumn Header="Col 1"
Visibility="{Binding ElementName=showcol1,
Converter={StaticResource BooleanToVisibilityConverter},
Path=IsChecked}" />
<DataGridTextColumn Header="Col 2"
Visibility="{Binding ElementName=showcol2,
Converter={StaticResource BooleanToVisibilityConverter},
Path=IsChecked}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
Run Code Online (Sandbox Code Playgroud)
我甚至尝试过其他选项,例如BindsDirectlyToSource=True和UpdateSourceTrigger=PropertyChanged.但是,当我选中/取消选中菜单项时,列不会更改其可见性.我究竟做错了什么?这在纯XAML中实际上是否可行?
在这个问题中,答案使用了x:Reference.我也试过了,但收到了错误
服务提供商缺少INameResolver服务.
Google告诉我这是VS2010中的一个错误?我该怎么做才能解决这个问题?或者是我最好的切换到VS2012?
我在WinForms中有一个PropertyGrid控件(http://msdn.microsoft.com/en-us/library/aa302326.aspx).现在我想将中间垂直线向左移动(它总是居中,但是我的键非常短,而值是Paths,它们很长.控件在默认情况下将线放在中间,尽管用户很多为了方便用户,我想以编程方式将行更多地移到左边.我现在已多次搜索WinForms设计器属性以及PropertyGrid控件的成员,但未找到该选项(也没有任何与之相关的事件).
隐私是通过隐私来隐藏吗?我只是监督它吗?(在这种情况下,我真诚地抱歉)或者我怎么能这样做呢?
我正在尝试使用java.util.Scanner以下方式接收输入:
Scanner scanner = new Scanner(System.in);
int bla = scanner.nextInt();
String blubb = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)
但是nextLine()命令只是被跳过并返回一个空字符串.我怎么解决这个问题?