首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContentPresenter中的BindableCollection

ContentPresenter中的BindableCollection
EN

Stack Overflow用户
提问于 2019-08-14 22:49:38
回答 1查看 78关注 0票数 0

我使用ContentPresenter (类似于MVC中的局部视图)来显示UserControl中的(子)视图的简单列表,但数据并未绑定。

尝试了数据绑定的详细版本,也尝试了一行,但没有数据绑定到显示。

UserControl有一个名为WorkPieces的属性,它是WorkPieceViewModel的BindableCollection,并在启动时实例化为具有默认值Width: 0、Length: 0和指示符(罗马数字)。UserControl视图的相关部分:

代码语言:javascript
复制
<ContentPresenter Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="2" x:Name="WorkPieces" HorizontalAlignment="Stretch">
    <ContentPresenter.ContentTemplate>
        <DataTemplate DataType="{x:Type models:WorkPieceViewModel}">
            <local:WorkPieceView />
        </DataTemplate>
    </ContentPresenter.ContentTemplate>
</ContentPresenter>

The WorkPieceView:(也是UserControl)

代码语言:javascript
复制
<DockPanel HorizontalAlignment="Stretch">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="auto" />
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Row="0" Grid.Column="0" x:Name="WorkPieceId" Visibility="Hidden" />

        <TextBlock Grid.Row="0" Grid.Column="1" x:Name="Designator" Text="{Binding Designator}" MinWidth="15"/>

        <TextBlock Grid.Row="0" Grid.Column="2" Text="{x:Static lang:Resources.Txt_W}" />

        <TextBox Grid.Row="0" Grid.Column="3" x:Name="WorkWidth" MinWidth="50"/>

        <TextBlock Grid.Row="0" Grid.Column="4" Text=" x " />

        <TextBlock Grid.Row="0" Grid.Column="5" Text="{x:Static lang:Resources.Txt_L}" />

        <TextBox Grid.Row="0" Grid.Column="6" x:Name="WorkLength" MinWidth="50"/>

        <Button Grid.Row="0" Grid.Column="7" Margin="5">
            <Image Source ="/Images/plus-sign.png" Height="16" Width="16" />
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Click">
                    <cal:ActionMessage MethodName="AddNewWorkPiece" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>

        <Button Grid.Row="0" Grid.Column="8" Margin="5">
            <Image Source ="/Images/minus-sign.png" Height="16" Width="16" />
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Click">
                    <cal:ActionMessage MethodName="RemoveWorkPiece">
                        <cal:Parameter Value="{Binding ElementName=Id}" />
                    </cal:ActionMessage>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>
    </Grid>
</DockPanel>

主要问题是宽度和长度值没有绑定。我还有其他一些问题,比如strech不工作--但那只是UI,Designator没有显示,尽管它的值是'I‘(roman 1)。这可能是因为没有发生绑定。

EN

回答 1

Stack Overflow用户

发布于 2019-08-16 01:05:22

问题是这项任务过于复杂。一个带有BindingList的简单ListBox解决了我的问题……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57497086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档