を「この操作はこれだけテンプレートが適用されている要素で有効です」:ユーザーコントロール内にエラー:私は、ユーザーコントロールが含まC#WPFアプリケーション持って
<UserControl
x:Name="payrollEntryControl"
x:Class="MyNamespace.PayrollEntryControl"
[...]
>
[...]
</UserControl>
を、私はTelerik RadDataForm
を持っている:
<telerik:RadDataForm
x:Name="payrollAddForm"
CurrentItem="[...]"
EditTemplate="{StaticResource myEditTemplate}"
/>
テンプレートは、Telerik RadGridView
とButton
含まれています
<telerik:RadGridView Grid.Row="0" Grid.Column="0"
x:Name="workGridView"
[...]
ItemsSource="{Binding [...]}"
>
<telerik:RadGridView.Columns>
[...]
</telerik:RadGridView.Columns>
</telerik:RadGridView>
<Button Grid.Row="1" Grid.Column="0"
Command="{Binding addWorkCommand, ElementName=payrollEntryControl}"
>
Add
</Button>
コマンドを実行したい場合は、にBeginInsert()
を呼び出してください。しかし、私はworkGridView
にアクセスできないようです。
私のコマンド、これまで:
private DelegateCommand addWorkCommand_ = null;
public DelegateCommand addWorkCommand
{
get
{
if (this.addWorkCommand_ == null)
{
this.addWorkCommand_ = new DelegateCommand(
o => addWork(o)
);
}
return this.addWorkCommand_;
}
}
private void addWork(object o)
{
var addForm = this.payrollAddForm;
var editTemplate = addForm.EditTemplate;
var workGrid = editTemplate.FindName("workGridView", addForm);
}
私の問題?私は理解していない
This operation is valid only on elements that have this template applied.
:私はeditTemplate.FindName()
への呼び出しを行うと、私は例外を取得します。私はフォームからテンプレートを取得しています。どのように適用できないのですか?
この質問は、Telerikライブラリに非常に特異的であるように思われます。おそらく、そのベンダーの製品に精通している人から特別な助けが必要になるでしょう。それを超えると、良い[mcve]がなければ誰でも直接問題を診断することが難しいかもしれません。エラーメッセージのデバッグと調査に関して既に試したことを説明してください(返されたアイテムの関連性を含めて[ここ](https://stackoverflow.com/search?q=%5Bc%23%5D+%22This+ + + +テンプレート+適用済み。%22))。 –