2012-03-22 17 views
0

WPFに固有のF#を使用していることに注意してください。どのような深さでコントロールの子のDataContextを設定するために何をすべきですか?どのようにデータコンテキストを "TargetControl"という名前で制御するかを設定する。問題のコンテキスト:DataContextを継承する方法

App.xaml:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     > 
    <Frame Name="Frame" Source="MainWindow.xaml" /> 
</Window> 

MainWindow.xaml:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid> 
     <TabControl Grid.Row="0" Grid.Column="0" Name="mainTab"> 
      <!-- Tests work area --> 
      <TabItem Header="Проверка проекта"> 
       <Frame Source="TestsPropagate.xaml" /> 
      </TabItem> 
     </TabControl> 
    </Grid> 
</UserControl> 

TestsPropagate.xaml

<UserControl 
    Name="TargetControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <TextBox Text="{Binding Path=testField}" /> 
</UserControl> 

このキャップを開始するために私のブートローダー:

[<STAThread>] 
[<EntryPoint>] 
let main(_) = //(new Application()).Run(Application.Current) //mainWindowViewModel) 
    OFTD.DOM.ExtraEntities.Verification.EnitiesInitializer.InitializeReaders() 
    let app = new Application() 
    let view = Application.LoadComponent(new System.Uri("App.xaml", UriKind.Relative)) :?> Window 

    let vm = new AppViewModel() // is data context to TargetControl  
    app.Run(view) 
+0

うわー、WPFとF#は、あなたが – GONeale

+0

は、今、私は唯一のプログラムのカーネル内のF#を使用:)勇敢ビューモデルを実装することができます。次に、C#コード(コードビハインド)でビューモデルを展開し、F#のビューモデルでC#でWPFを使用します:) – psct

答えて

1

fsharpの構文のスーパーわからないが、これは作るべき意味:

let vm = new AppViewModel() // is data context to TargetControl  
view.DataContext <- vm 
app.Run(view) 
+0

いいえ、 "TargetControl"という名前のUserControlへのDataContextは、ビューからDataContextを継承しません。フレームコントロール – psct

+0

のソースフィールドを使用していることに注意してください。DataContextを任意のビジュアルと関連付けるコードのどこにも表示されません。したがって、私の答えは – flq

+0

です。任意の深さで 'view'の子のDataContextを設定するにはどうすればよいですか? – psct

関連する問題