1

mvvm-light を使用しています。i;一方のコマンド ボタンともう一方のビュー用プレース ホルダーを使用してアプリケーションを作成しようとしています。

コマンドでビューを作成しようとすると、ViewModel の ToString 名を取得します。

例: LU.ViewModel.ChannelsViewModel

私は何が欠けていますか?

ここに私のコードがあります:

メインウィンドウ

新しいチャンネル

        <ContentControl x:Name="_placeholder"                               
                        x:FieldModifier="private"
                            Margin="16"
                            HorizontalContentAlignment="Center"
                            VerticalContentAlignment="Center"
                            Content="{Binding CurrentViewModel , Mode=OneWay}"/>

         </StackPanel>

資力:

メイン ウィンドウに表示される CustomerViewModel クラスの -->

チャンネルビュー

<Grid Margin="4">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="6" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="30" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="30" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="30" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="30" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Grid.Resources>
        <DataTemplate DataType="{x:Type ValidationError}">
            <TextBlock 
      FontStyle="Italic"
      Foreground="Red"
      HorizontalAlignment="Right"
      Margin="0,1"
      Text="{Binding Path=ErrorContent}" 
      />
        </DataTemplate>
    </Grid.Resources>

    <!-- NAME-->
    <Label 
  Grid.Row="0" Grid.Column="0" 
  Content="Name:" 
  HorizontalAlignment="Right"
  Target="{Binding ElementName=NameTxt}"
  />
    <TextBox 
  x:Name="NameTxt"
  Grid.Row="0" Grid.Column="2" 
  Text="{Binding ChannelName, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" 
  Validation.ErrorTemplate="{x:Null}"
  />
    <ContentPresenter 
  Grid.Row="1" Grid.Column="2"
  Content="{Binding ElementName=NameTxt, Path=(Validation.Errors).CurrentItem}"
  />

    <!-- IP-->
    <Label 
  Grid.Row="2" Grid.Column="0" 
  Content="IP:" 
  HorizontalAlignment="Right"
  Target="{Binding ElementName=IPTxt}" 
  />
    <TextBox 
  x:Name="IPTxt"
  Grid.Row="2" Grid.Column="2" 
  Text="{Binding IP, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
  Validation.ErrorTemplate="{x:Null}"
  />
    <ContentPresenter 
  Grid.Row="3" Grid.Column="2"
  Content="{Binding ElementName=IPTxt, Path=(Validation.Errors).CurrentItem}"
  />

    <!-- Control Port-->
    <Label 
  Grid.Row="4" Grid.Column="0" 
  Content="Control port:" 
  HorizontalAlignment="Right"
  Target="{Binding ElementName=controlPortTxt}" 
  />
    <TextBox 
  x:Name="controlPortTxt"
  Grid.Row="4" Grid.Column="2" 
  Text="{Binding ControlPort, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
  Validation.ErrorTemplate="{x:Null}"
  />
    <ContentPresenter 
  Grid.Row="5" Grid.Column="2"
  Content="{Binding ElementName=controlPortTxt, Path=(Validation.Errors).CurrentItem}"
  />

    <!-- data Port-->
    <Label 
  Grid.Row="6" Grid.Column="0" 
  Content="Data port:" 
  HorizontalAlignment="Right"
  Target="{Binding ElementName=dataPortTxt}" 
  />
    <TextBox 
  x:Name="dataPortTxt"
  Grid.Row="6" Grid.Column="2" 
  Text="{Binding DataPort, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
  Validation.ErrorTemplate="{x:Null}"
  />
    <ContentPresenter 
  Grid.Row="7" Grid.Column="2"
  Content="{Binding ElementName=dataPortTxt, Path=(Validation.Errors).CurrentItem}"
  />

    <!-- SAVE BUTTON -->
    <Button 
  Grid.Row="8" Grid.Column="2"
  Command="{Binding SaveCommand}"
  Content="_Save"
  HorizontalAlignment="Right"
  Margin="4,2" 
  MinWidth="60" 
  />
</Grid>


SVN をコミットすると常にエラーが発生する (Subclipse)

サーバーにsvnをセットアップし、自宅にSubclipseをセットアップしました。私は唯一の開発者であり、主にバックアップとバージョン管理機能に使用しています。

変更をコミットするたびに、8 倍になります。

Out Of date errors

また

Tree conflicts

ファイルを削除しても、svn では削除されないことがあります。ディレクトリ階層では、最後の項目のみが削除されるため、各フォルダーを一度に 1 つずつ削除する必要があります。

今後これらのエラーを回避するにはどうすればよいですか?

更新: 私が抱えているもう 1 つの問題は、Eclipse がサーバーと同期しているように見えることがあるため、ファイル名をリファクタリングすると、サーバーに送信されて何かを実行し、私を待たせることです。

わかりやすくするために、これは典型的な操作です。ファイル名を変更し、ファイルを別のフォルダーに移動してから、ファイルの内容を変更します。「チーム メニュー」を選択し、「コミット」をクリックします。次に、上記のすべてのエラーが発生します。

4

3 に答える 3

2

それは私にとってはうまくいきますが、それが良い習慣かどうかはわかりません:

  <UserControl.Resources>
        <DataTemplate DataType="{x:Type vm:SimpleReflectionViewModel}">
            <view:SimpleReflecionView></view:SimpleReflecionView>
        </DataTemplate>
  </UserControl.Resources>

<ContentControl Margin="4,0,4,4" HorizontalAlignment="Center" VerticalAlignment="Bottom" Content="{Binding CurrentViewModel}" /> 

//CurrentViewModel は ViewModelBase 型のプロパティです

于 2010-07-21T19:24:59.570 に答える
1

私は同じ問題に遭遇しました。私の問題は、ビューがビューモデルに正しくバインドされていなかったことです。

次のような宣言があることを確認する必要があります。

<DataTemplate DataType="{x:Type vma:InlineDepartmentsViewModel}">
    <va:InlineDepartmentsView/>
</DataTemplate>

これは MainSkin.xaml にありました。また、ビューでバインディングも設定していることを確認してください。

DataContext="{Binding InlineDepartments, Source={StaticResource Locator}}"

InlineDepartments は、ビュー ロケーター内のプロパティの名前になります。

于 2011-12-22T00:01:13.060 に答える
0

複雑なオブジェクト (ViewModel など) で "Content" プロパティを設定すると、常にそれが得られます。

ViewModel を「Content」にバインドする代わりに、「DataContext」にバインドします。

本当に Content にバインドしたい場合は、ViewModel 自体だけでなく、ViewModel のプロパティにバインドする必要があります。例:

Content="{Binding CurrentViewModel.SomeStringPropertyInMyVM , Mode=OneWay}"/>

于 2010-06-14T15:46:43.787 に答える