2010-11-18 4 views
1

Blend 4では、VMクラスからサンプルデータソースを生成しようとしています。このクラスには、インタフェースのobservablecollectionを返すプロパティと、observablecollectionを持つ別のプロパティがクラスの持っています。サンプルデータソースを生成するとき、Blendはクラスプロパティのデータを生成しますが、インタフェースは生成しません。これを回避する方法はありますか?私のコードは絶対にインターフェイスを持っている必要がありますが、同様に私は設計時に生成されたサンプルデータを見ることができます。BlendはVM用のサンプルデータを生成しません

+0

:私は、myvmに用との具体的なIDataInterfaceの実装のための1つを2つの設計時のデータソースを作成することをお勧め:

namespace SilverlightApplication1 { public interface IDataInterface { string Stuff { get; set; } } public class PartialViewModel<M> { public M Model { get; private set; } } public class ConcreteDataInterface : IDataInterface { public ConcreteDataInterface() { this.Stuff = "Concrete Stuff!"; } public string Stuff {get;set;} } public class MyVM { public PartialViewModel<IDataInterface> Partial { get; private set; } } } 

をして、XAMLは次のようになりますVMにはインターフェイスプロパティがあり、Blendはバインディングウィンドウのプロパティも表示しません。 – TDaver

+0

クラスの例を教えてもらえますか? –

+0

@Michael S. Scherotter: 'public class PartialViewModel {public M Model {get;私のDataContextは 'パブリッククラスMyVM {public PartialViewModel Partial {get;}}です。プライベートセット;}} 'そしてもちろん' public interface IDataInterface {string Stuff {get; set;}} 'そして私の目標は、ブレンドしてPartial.Model.Stuffプロパティを見ることです。しかし、スタッフは現れず、前述の元の質問にもサンプルデータがありません! – TDaver

答えて

2

ここで問題となるのは、IDataInterfaceの具体的な実装として作成するオブジェクトの種類がBlendに分からないことです。私、私は同じ問題を持っている

<UserControl x:Class="SilverlightApplication1.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="400"> 

    <Grid x:Name="LayoutRoot" 
     d:DataContext="{d:DesignData /SampleData/MyVMSampleData.xaml}"> 
     <Grid DataContext="{Binding Partial.Model}" 
      d:DataContext="{d:DesignData /SampleData/ConcreteDataInterfaceSampleData.xaml}"> 
      <TextBlock Text="{Binding Stuff}"/> 
     </Grid> 
    </Grid> 
</UserControl> 
+0

私はこれを試してみましょう!ありがとう! – TDaver

+0

私はそれを試しましたが、問題は、モデルと内部の両方のプロパティが必要なので、内部グリッドのDataContextにPartial.Modelを割り当てたくないということでしたが、一時的にインタフェースをMyVM内部の具象クラスに置き換えました(ヨハネスが示唆した通り) – TDaver

+0

あなたの解決策は完璧ではありませんが、実際には細かい詳細を指定していないので、奨励金を授与します。再度、感謝します。 – TDaver

関連する問題