誰でも次のことを手伝ってもらえますか-これで遊んでいますが、私の人生ではそれを機能させることはできません.
次のプロパティを含むビュー モデルがあります。
public ObservableCollection<Rule> Rules { get; set; }
public Rule SelectedRule { get; set; }
私の XAML には、次のようなものがあります。
<ListBox x:Name="lbRules" ItemsSource="{Binding Path=Rules}"
SelectedItem="{Binding Path=SelectedRule, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name:" />
<TextBox x:Name="ruleName">
<TextBox.Text>
<Binding Path="Name" UpdateSourceTrigger="PropertyChanged" />
</TextBox.Text>
</TextBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
これで、ItemsSource が正常に動作し、lbRules に名前が表示された Rule オブジェクトのリストが取得されます。
私が抱えている問題は、SelectedRule プロパティを lbRules の SelectedItem にバインドすることです。テキストブロックのテキスト プロパティを SelectedRule にバインドしようとしましたが、常に null です。
<TextBlock Text="{Binding Path=SelectedRule.Name}" />
出力ウィンドウに表示されるエラー: BindingExpression パス エラー: 'SelectedRule' プロパティが見つかりません。
誰でもこのバインディングを手伝ってもらえますか? SelectedRule プロパティが見つからない理由がわかりません。
次に、テキストブロックのテキスト プロパティを以下のように変更してみました。問題は、ViewModel で SelectedRule を使用したいことです。
<TextBlock Text="{Binding ElementName=lbRules, Path=SelectedItem.Name}" />
どうもありがとうございました。