English 中文(简体)
WPF ListBox 中的项目即使出现在设计模式中, 也不会在 WPF 列表框中显示
原标题:Items not showing in WPF ListBox even though they show up in design mode

我对XAML和WPF中数据的约束有些问题。 具体地说,我试图将XmlDataProvider的数据绑在ListBox上。

问题是,当我在2010年视觉工作室的设计模式中时, xml 的项目出现正确, 但当我运行应用程序时, 列表框是空的 。

我的Xaml长的是这样的。我不使用后面的代码,所以这里就只有:

<Window x:Class="WpfTest9_Binding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="309" Width="622">
    <Window.DataContext>
        <XmlDataProvider XPath="Servers">
            <x:XData>
                <Servers>
                    <Server name="Server01" active="true" />
                    <Server name="Server02" active="false" />
                    <Server name="Testserver01" active="true" />
                    <Server name="Testserver02" active="true" />
                </Servers>
            </x:XData>
        </XmlDataProvider>
    </Window.DataContext>
    <Grid>
        <ListBox ItemsSource="{Binding XPath=*}" Margin="12">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Border CornerRadius="5" Margin="5" BorderThickness="2" BorderBrush="#FFC14343">
                        <StackPanel Orientation="Horizontal" Margin="5">
                            <CheckBox IsChecked="{Binding XPath=@active}" />
                            <Label Content="{Binding XPath=@name}" />
                        </StackPanel>
                    </Border>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
</Window>

正如我上面所说,奇怪的是,它看起来在设计模式中起作用,但当我运行程序时却无法填满列表框。我也不会收到任何错误信息或警告。

有什么不对劲吗?

最佳回答

Ok, the solution was surprisingly simple. As pointed out in this post, Listbox content not being populated with content from xml when using XmlDataProvider , all I had to do was to add an empty namespace attribute to the xml element. Like this:

<Servers xmlns="">
    <Server name="Server01" active="true" />
    <!-- ... -->
</Servers>
问题回答

暂无回答




相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签