0

WPFのスタイルに問題があります。空白の(空白ではないはずの)ラベルListBoxの束を含むがあります。私のXAMLでは次のように定義されています。

            <ListBox Height="auto" Name="ProjectsList" Width="auto" DockPanel.Dock="Top" ItemsSource="{Binding Projects}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid Margin="3">
                            <Label Content="{Binding Path=Name}" Foreground="Black" Height="40" Padding="7" VerticalAlignment="Center" ScrollViewer.HorizontalScrollBarVisibility="Hidden" Name="ProjectName" />
                            <Label Content="{Binding Path=TaskCount}" Foreground="Gray" Width="25" Name="ProjectTaskCount" />
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

Projects対応するデータを取得するためのデータベースクエリの後に作成される構造体(私が定義したもの)でObservableCollection満たされたものです。Projectコードをステップスルーして、クエリが正常に返されることを確認し、構造体が入力されてコレクションに追加されることを確認できます。ListBoxまた、空白の項目を選択すると強調表示されるため、データが入力されていることもわかっています。しかし、あるべきテキストはありません。

Project属性Nameはastringであり、はTaskCountですint

これがProject定義です

public struct Project
{
    public Int64 Id;
    public string Name;
    public string Description;
    public bool HasDueDate;
    public DateTime DueDate;
    public Int64 UserId;
    public int TaskCount;
}

問題は、なぜテキストが表示されないのかということです。

4

2 に答える 2

3

パブリックプロパティにバインドするだけです。構造体にフィールドが表示されます。そして他の人が言ったように:INotifyPropertyChangedを実装し、それを適切に上げます

于 2012-06-20T08:29:25.133 に答える
1

INotifyPropertyChangedをビジネスオブジェクトに実装する必要があります。これは、PropertyChangedコールバックを使用してUIへのプロパティの変更を直接通知します。しかし、これを使用してリストボックスをバインドしているかどうかはわかりません。

http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

http://www.codeproject.com/Articles/81484/A-Practical-Quick-start-Tutorial-on-MVVM-in-WPF

http://wpftutorial.net/MVVM.html

于 2012-06-20T06:10:50.760 に答える