2011-12-14 8 views
0

私のサーバー側のアプリケーション(TradeMarks & RetailStores)に2つのモデルがあります。 各RetailStoreには相互参照用のTradeMarkIdフィールドがあります。クライアント側ではSilverlight 4 - DataForm(AutoGeneratingField)のRIAサービスDataFieldヘッダー

Class RetailStore: 
[Display(Order = 5, Name = "RetailStoreTradeMarkTitle", Description = "RetailStoreTradeMarkDescription", ResourceType = typeof(RegistrationDataResources))] 
public int TradeMarkId { get; set; } 

を私はAutoGeneratingField上のフィールドをキャッチし、次のようにすべての商標をリストコンボボックスでそれを置き換える:

次のように私はRetailStore(TradeMarkIdフィールド)を定義し、私のDomainServiceのメタデータ・モデルに
 if (e.PropertyName == "TradeMarkId") 
     { 

      ComboBox TradeMarkIdComboBox = new ComboBox { DisplayMemberPath = "TradeMarkName" }; 
      Binding itemsSource = new Binding("TradeMarks") { Source = this.retailStoreDomainDataSource.DomainContext }; 
      Binding selectedItem = new Binding("TradeMark") { Mode = BindingMode.TwoWay }; 
      TradeMarkIdComboBox.SetBinding(ComboBox.ItemsSourceProperty, itemsSource); 
      TradeMarkIdComboBox.SetBinding(ComboBox.SelectedItemProperty, selectedItem); 

      DataField TradeMarkIdField = new DataField 
      { 
       Content = TradeMarkIdComboBox, 
       Label = e.Field.Label 

      }; 
      e.Field = TradeMarkIdField; 

     } 

すべてが完全にバインディングの期間に動作しますが、私はモデルで定義した "RetailStoreTradeMarkTitle"、Description = "RetailStoreTradeMarkDescription" DisplayAttributesを失いました!私はこの分野の検証を失った。

私の質問は何ですか?モデルバリデーション&フィールドヘッダーを返す方法はありますか?事前に

Thnaks、 WaMe

答えて

0

私はこれにかなり新しいんだけど、私はこの問題はe.Fieldビットだと思う - あなたはおそらくe.Field.ReplaceTextBoxを使用する必要があります。

私は非常によく似た何かを実装していると、このコードは私のために働いていた: -

 if (e.PropertyName == "TradeMarkId") 
     { 
      ComboBox target = new ComboBox() { DisplayMemberPath = "TradeMarkName", SelectedValuePath = "TradeMarkId" }; 
      target.ItemsSource = TaskManager.Manager.GanttItemSource; 
      e.Field.ReplaceTextBox(target, ComboBox.SelectedValueProperty, binding => binding.Converter = new TargetNullValueConverter());    
     } 

はそれがあなたのために働くことを望みます! (あなたはIDプロパティを選択しなければならないことを念頭に置いてください - 私はあなたが商標のIDとしてどのフィールドを使用しているのかわかりません - 私はそれが "TradeMarkId"だと推測しています)

関連する問題